powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird
70 сообщений из 70, показаны все 3 страниц
45 способов улучшить производительность Firebird
    #39233982
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,

http://ibase.ru/45-ways-to-improve-firebird-performance-russian

With best regards,
Alexey Kovyazin
www.ibsurgeon.com
www.ibase.ru/techsupp.htm
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234050
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kovyazin,

опечатка: пропущено IN

25. Отключайте индексы в случае IN cо списком константамЕсли вы используете конструкцию WHERE fieldX IN (Contant1, Constant2, Constan3,… ConstantN), и есть индекс по fieldX, Firebird будет использовать индекс столько раз, сколько констант упомянуто в списке IN. Отключите использование индекса превращением fieldX в выражение fieldX+0: WHERE fieldX+0 IN (Contant1, Constant2, Constan3,… ConstantN) (для строковых переменных – fieldX||’’).
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234069
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясните, пожалуйста, этот финт:

30. Используйте производные таблицыИспользуйте производные таблицы (derived tables) для исключения ненужных сортировок: например, вместо
Код: sql
1.
2.
3.
SELECT FIELD_KEY, FIELD1, FIELD2, ... FIELD_N
FROM T
ORDER BY FIELD2


Используйте такой вариант:
Код: sql
1.
2.
3.
SELECT  T.FIELD_KEY, T.FIELD1, T.FIELD2, ... T.FIELD_N
FROM (SELECT FIELD_KEY, FIELD1 FROM T  ORDER BY FIELD2) T2
JOIN T ON T.FIELD_KEY = T2.FIELD_KEY


Имеется в виду, что сортировка "узкого" курсора выполнится с меньшими затратами ресурсов?
Т.е., вот этот вариант будет еще лучше:
Код: sql
1.
2.
3.
SELECT  T.FIELD_KEY, T.FIELD1, T.FIELD2, ... T.FIELD_N
FROM (SELECT FIELD_KEY/*, FIELD1*/ FROM T  ORDER BY FIELD2) T2
JOIN T ON T.FIELD_KEY = T2.FIELD_KEY

?
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234070
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
20 штПоясните, пожалуйста, этот финт:
Сам же пояснил.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234072
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос такой: в таблице есть числовые поля и поля внешние ключи. По последним, естественно, созданы индексы. Записей много -- свыше 10 млн. Апдейтом меняются ТОЛЬКО числовые поля. В таком случае имеет смысл отключать индексы для ускорения процесса или нет?
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234075
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там опечатка - имелось в виду Field2 в Order BY и в SELECT
Но вообще да, можно и без дополнительно Field в селекте.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234076
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22Вопрос такой: в таблице есть числовые поля и поля внешние ключи. По последним, естественно, созданы индексы. Записей много -- свыше 10 млн. Апдейтом меняются ТОЛЬКО числовые поля. В таком случае имеет смысл отключать индексы для ускорения процесса или нет?
Нет смысла.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234176
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А движок сайта не предусматривает хотя бы примитивное форматирование кода?

21-й век на дворе ;)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234179
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

+1.

Подсветка, форматирование.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой... чудак... придумал номер 28? Дайте ему по башке чтобы так больше никогда не делал.
Номер 43 (в свете 34) следует переформулировать как "никогда не используйте таблицы
мониторинга".
На номер 44 у вас, конечно же, есть экспериментальное подтверждение?..

И где способ номер 0: "помойте руки тому заскорузлому пареньку, что колбу держит
повышайте квалификацию DBA и разработчика приложения всеми доступными методами"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234206
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alexey Kovyazin!
You wrote on 12 мая 2016 г. 12:30:49:

Alexey Kovyazin45-ways-to-improve-firebird-performance-russianа кто автор?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234208
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да ладно.

1. Таблицы мониторинга в тройке сильно шустрее
2. Совет из серии не тыкайте таблицы мониторинга куда попало, например в табличные триггеры. Про совсем речь конечно не идёт. Это полезный инструмент, когда им правильно пользуешься.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234210
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я про "никогда не используйте таблицы мониторинга".
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234285
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, про №16
А нет планов научить сервер самостоятельно отключать/включать индексы на insert-select и merge ?
Или он уже умеет?
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234290
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TonalКстати, про №16
А нет планов научить сервер самостоятельно отключать/включать индексы на insert-select и merge ?
Или он уже умеет?

Поясни, пожалуйста. Непосредственно перед Insert выключать, сразу после - включать?
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234295
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonal,

нет. Все эти игры с отключением индексов работают только при монопольном доступе. Тем более что для PK, FK и UNIQUE ты их отключить не сможешь.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234309
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 12 мая 2016 г. 14:03:33:

Симонов Денис> для PK, FK и UNIQUE ты их отключить не сможешь.можно.
но не нужно.

а вообще все эти советы ни о чём..

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234500
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by
Остальные замечания - брюзжание утомленных чешским пивом и питерским климатом мужчин :)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234502
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KovyazinВ номере 28 действительно ошибка из серии потеряного NOT - фетч
имеет смысл ограничивать только если НЕ Order by /group by
Даже в этом случае его ограничивать не имеет никакого смысла. На быстродействии Firebird
оно не скажется никак. От слова "совсем".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234512
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, в общем автор статьи обозначился.
а отчего не подписался то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234517
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНа номер 44 у вас, конечно же, есть экспериментальное подтверждение?..Есть. Да ты и сам можешь его проверить. В известном тебе тесте запусти молотьбу, предварительно выставив в oltpNN_config-файле no_auto_undo = 0
по итогам пробегов ~ августа 2014
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
# Should SET TRANSACTION statement include NO AUTO UNDO clause (1=yes, 0=no) ? 
# Performance can be increased if this option is set to 1:
# SuperServer:   5 -  6%
# SuperClassic: 10 - 11%
# Recommended value: 1

no_auto_undo = 1
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234519
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Kovyazin,

на счёт 28. Как раз наоборот. FIRST/SKIP, FETCH/OFFSET, ROWS без ORDER BY вернёт случайный набор записей.
Ну с GROUP BY он обычно не подразумевается.

В Firebird 3 FIRST/SKIP, FETCH/OFFSET, ROWS меняет стратегию оптимизатора на FIRST ROWS, так что он может поменять план.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234521
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KovyazinВ номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by
...
И не забываем про 30!
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234527
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидЕсть. Да ты и сам можешь его проверить.
При всём уважении к твоему тесту...
Ты же понимаешь, что каждая откаченная транзакция с этим флагом автоматически тормозит
счётчик ОAТ и неизбежно приводит к запуску свипа?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234542
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

возможно, что я видел положительный эффект именно от того, что свип... ни разу так и не стартовал. Потому что все транзакции в этом тесте стартуют как snapshot, и среди них постоянно есть несколько сильно застрявших. Свип стартует в итоге почти всегда только под занавес - когда молотилки отваливаются ввиду истечения таймаута.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234552
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
20 шт,

про 30 надо пробовать. Этот способ спасает только когда есть очень широкие сортировки, которые гарантировано вылетят из TempCacheLimit
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234561
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис20 шт,

про 30 надо пробовать. Этот способ спасает только когда есть очень широкие сортировки, которые гарантировано вылетят из TempCacheLimit
Я уже давно такой финт использую: для отображения получаю только список идентификаторов, отсортированный и отфильтрованный по значениям других полей, а при отображении закачиваю только то, что желает показать в данный момент гуй ("грид"), т.е. не больше одного-двух экранов. Выборка безобразно широченная, ибо юзеры сами определяют, что показывать, и никто, естественно, их по рукам не бьёт, ограничивая. И индексов по полям нет.
Нормально, пока, жалоб нет.

Delphi + VirtualTreeView.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234565
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
20 шт,

я к тому что не следует пихать во все дыры. Главное правило оптимизации это отказ от преждевременной оптимизации. Не тормозит, тогда и не надо оптимизировать. Затормозило - начинаем пробовать различные способы. А то что тебе помогает это хорошо. Способ старый и давно известный.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234569
20 шт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис20 шт,

я к тому что не следует пихать во все дыры. Главное правило оптимизации это отказ от преждевременной оптимизации...

Конечно же, да. :)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234571
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 12 мая 2016 г. 17:43:46:

Симонов Денис> Главное правило оптимизации это отказ от преждевременной оптимизации.золотые слова!

а советы из серии "пейте морковный сок для укрепления семьи",
без указания контекста применения рецепта,
выглядят как забавная попытка сформулировать всеобщие законы вселенской гармонии,
невзирая на возраст и пол пациентов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39234582
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий> а советы из серии "пейте морковный сок для укрепления семьи",
Мимопроходящий> без указания контекста применения рецепта,
Мимопроходящий> выглядят как

Мне это больше напомнило анекдот про волка, логику и спички.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39236996
Фотография Alexey Kovyazin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было бы здорово, если бы кто-нибудь написал про свой список способов, пусть не 45 способов, но в общую копилку добавилось бы.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237145
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Alexey Kovyazin!
You wrote on 17 мая 2016 г. 10:46:20:

Alexey Kovyazin> Было бы здорово, если бы кто-нибудь написал про свой список способов,
> пусть не 45 способов, но в общую копилку добавилось бы.доктор, а вы по фотографии пациентов не лечите?

НЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237159
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК
ТОПОР ТЧК
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237250
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК
то есть, все 45 советов - говно? И вообще советов давать не надо? Т.е. хрен с ним, как работало, пусть так и работает?
Я хочу понять логику отрицания.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237259
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvМимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК
то есть, все 45 советов - говно? И вообще советов давать не надо? Т.е. хрен с ним, как работало, пусть так и работает?
Я хочу понять логику отрицания.

К любому совету можно доклепаться. У всех разные базы, выборки, требования. Поэтому универсальных советов нет. Ну разве что о том, что конфиги сервера по умолчанию несколько э-э неоптимальны.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237261
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey KovyazinБыло бы здорово, если бы кто-нибудь написал про свой список способов

0. Используй мозг чтобы не отклоняться от методологии KISS.
1. Читай dataaccesspath.html.
2. Если можешь что-то не делать - не делай это.
3. Предпочитай эффективность кода его красоте или краткости.
4. Если не знаешь как написать какой-то запрос - перепроектируй БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237274
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov4. Если не знаешь как написать какой-то запрос - перепроектируй БД.
Был у нас админ. Реальный. При неработающей мышке залил систему с нуля. Хуже может быть только то, что он ничего не сохранил перед заливкой. :)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237279
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 17 мая 2016 г. 12:28:15:

Kdv> то есть, все 45 советов - говно? И вообще советов давать не надо?
> Т.е. хрен с ним, как работало, пусть так и работает?
> Я хочу понять логику отрицания.
статьяВ этой статье собраны 45 достаточно простых способов...
Если они не помогают, самый главный совет читайте внизу.
самый главный советнастоятельно рекомендуем пройти курсы по Firebird, на которых рассматривается оптимизация запросов - http://www.ibase.ru/courses/
Также, наша компания предлагает услуги по оптимизации производительности СУБД Firebird в рамках технической поддержки для предприятий.

а остальное всё - голоса в пользу голодающих у озера чад
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237310
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster, Dimitry Sibiryakov, Мимопроходящий

я понял. Вы, при всем уважении, просто сферические кони в вакууме. Пообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45 советов написали.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237313
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvПообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45
советов написали.
От этого станет ясно "для кого". "Зачем" - несколько другой вопрос. Всерьёз надеетесь, что
кто-то из этих реальных пацанов разработчиков их прочтёт?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237317
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
универсальных советов в оптимизации SQL точно не существует. Есть лишь некоторые способы которые можно попробовать. Они могут дать, а могут и не дать положительный эффект. И пробовать надо только тогда когда эти тормоза есть.

А вот советы касающиеся дисковой подсистемы хуже никому не сделают. То же самое касается замены параметров в дефолтном конфиг для начала на рекомендуемые. Понятное дело что дальше надо подгонять.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237331
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster> Поэтому универсальных советов нет.

Очевидно, поэтому надо давать неуниверсальные,
а частные, для конкретных случаев/проблем и т.д.
Плюс совет/рекомендация совету/рекомендации рознь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237333
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv...
Я хочу понять логику отрицания.
А то ты первый день на sql.ru

"Дерусь просто потому что я дерусь" - (с) /Портос/
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237334
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 17 мая 2016 г. 13:08:31:

Симонов Денис> А вот советы касающиеся дисковой подсистемы хуже никому не сделают.
советы из серии "лучше быть здоровым И богатым, чем бедным и больным".
дисковая подсистема, как и всё железо, регламентируется финансовыми лимитами.
а не благими намерениями абстрактного характера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237350
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvя понял. Вы, при всем уважении, просто сферические кони в вакууме. Пообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45 советов написали.

Дим, ну вот скажи, если я (ну или не я) прибегу завтра с воплями "спасите-помогите" - ты меня к этим советам отправишь, что сразу решит мои проблемы? Вангую будет наоборот - начнется долгий флейм по поводу выяснения причин торможения именно на моей базе и именно в моем окружении. Из полезного я уже упомянул об оптимизации конфигов, все остальное из области общих рекомендаций.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237364
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster> начнется долгий флейм по поводу выяснения причин

Наивный. Сначала начнётся торг.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237385
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterИз полезного я уже упомянул об оптимизации конфигов, все остальное из области общих рекомендаций.

А вот не соглашусь. И не только конкретно с тобой, а вобще с общим посылом.

Для администратора, не имеющего доступа к исходному коду приложения, и которому при этому надо заставить очередной клиент очередного пенсионного фонда работать быстрее, очень даже пригодятся первых 15 советов. Как раз чтобы не нарваться на очередной флейм или очень правильные но при этом весьма специфически сформированные рекомендации от ДС, МП и иже с ними

Отдельно отметил для себя советы касаемо FB3+. Буду помнить, что они собраны в одном месте (авторизация, deterministic, etc). Да, я тоже много лет читаю форум и все это видел, но деталей не помню.

ПММ, рекомендации - нужные. Прямого вреда от их применения лично я не вижу и буду весьма признателен за конкретные сценарии.

Ну и само собой, что нулевой совет от ДСа - он как бы подразумевается.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237406
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineДля администратора, не имеющего доступа к исходному коду приложения, и
которому при этому надо заставить очередной клиент очередного пенсионного фонда работать
быстрее
Да, для эникейщика, которому и БД и приложение и сервер - одинаковые чёрные ящики, эти
советы вполне годятся. Как и в том анекдоте: "по колесу попинать, стекло протереть"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237410
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамDarkMaster> начнется долгий флейм по поводу выяснения причин

Наивный. Сначала начнётся торг.


Ну дык куды ж без этого :)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237760
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сказать авторам огромное спасибо за их работу! Некоторые советы напомнили о вещах, о которых забыл, некоторые заставили задуматься о том, о чем вообще не думал или не знал вовсе, некоторые подтвердили правильность собственных наработок, что порадовало, а некоторые советы заставят некоторые мои решения, похоже, пересмотреть. Не знаю, как там у мастеров, хотя их критику здесь тоже очень полезно почитать, но нам, новичкам, такие материалы крайне полезны. Даже если что-то тут окажется и неверным, все равно это полезно. Это очень ценный опыт. Может и высокопарно получилось, но зато от души, поверьте :)
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39237782
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, нормальные советы. Пара-тройка советов не совсем хорошо обьяснена, так скажем (кое где надо было по-развернутее расписать, зачем и когда такое лучше применять), а вообще вполне полезная статья.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39242439
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К советам еще можно добавить что-то типа:
"Если у вас есть таблица с множеством столбцов, в которой при OLTP нагрузке часто меняются значения только некоторых определенных столбцов в наборе строк этой таблицы, вынесите эти столбцы в отдельную таблицу, связав их 1:1 с мастер таблицей по первичному ключу."
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39242444
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

из чернового документа много таких вещей повыкидывали, потому что они не совсем однозначны, и относятся к оптимизации+проектированию БД.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39242455
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, мне казалось, данный совет имеет очевидный плюс в версионных СУБД.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39242461
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

по моему практическому опыту, делить таблицы 1:1, или даже дублировать, бывает полезно независимо от версионности. Кроме того, если посмотреть статистику БД, в таких таблицах обычно размер версии МЕНЬШЕ размера записи. Т.е. есть упаковка, поэтому особого прироста при таком делении "из-за версионности" можно и не получить.

p.s. и индексы по неизменяемым при update столбцам тоже не меняются, а не как у некоторых других СУБД. Так что по версионности все же основной совет - не держать транзакции длинными.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39242645
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть книжки "по оптимальному проектированию с финтами и извращениями" для других СУБД? Можно было бы попробовать что-то полезное вытянуть.
К примеру, совет "30. Используйте производные таблицы" - имхо, вполне пригоден не только для FB.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39250305
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторSSD обеспечивает более высокую скорость произвольного ввода-вывода, чем обычные жесткие диски. Работа с БД в основном состоит из большого количества операций чтения-записи в разных местах файла БД, и поэтому SSD дают существенный выигрыш в производительности баз данных

ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом...кол-во записи в ячейку ограничено и следит за этим трим, кот. не в каждой системе есть, хотя у самсунга она встроена, начиная с кого-то-там поколения....короче есть сомнения по поводу SSD...хотя я, может, порос мхом, как полагается с южной стороны...
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39250312
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong> ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом

Гм... Это сколько? 5, 10, 20? Каких брендов, моделей?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39250561
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong...ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом...
Немудрено. А 100 лет машинные носители информации вообще ничего не "сыпались". Карты имени товарища Германа Холлерита до сих пор читаются.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39251089
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYongкол-во записи в ячейку ограничено и следит за этим трим, кот. не в каждой системе есть
trim уже есть практически везде, а если нет на каком-то десктопе, значит или матплата старая, или надо обновить биос.

подсчитать "срок жизни" ssd по перезаписи - тоже не проблема. Например, с ресурсом ячейки в 3000 циклов, и размером диска 120 гиг, на такой диск можно записывать/менять по 12 гиг данных, в течение 8 лет. Или 24 гиг данных, в течение 4х лет.
Сейчас вообще стали писать в параметрах, сколько гиг каждый день можно записывать за сколько лет, так что даже вычислять не надо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
45 способов улучшить производительность Firebird
    #39725216
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
27. Упорядочите внешние соединения
Если в вашем запросе есть несколько групп LEFT OUTER JOIN, старайтесь расположить их так, чтобы вначале были таблицы с меньшим количеством записей, а затем – с большим.

Случайно с правый джойном не перепутали?
По своему опыту при использовании LEFT JOIN чаще всего сперва идёт ведущая таблица, с которой начинается поиск (самая большая, обычно таблица транзакций, фильтруется по дате/времени), затем к ней подцепляются различные справочники (конечно, если нужен дополнительный фильтр по элементам справочника, то порядок может быть другим).
Может я и не совсем прав, но совет 27 - явно спорный.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725232
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerСлучайно с правый джойном не перепутали?
вы, вероятно, будете смеяться, но
- a left join b и b right join a эквивалентны
- сервер внутри превращает b right join a в a left join b. Поэтому никакого right join "унутре сервера" нет.
DmSerПо своему опыту при использовании LEFT JOIN чаще всего сперва идёт ведущая таблица
речь не о том, как у вас чаще. А о том, что если в запросе более двух left join, то ИХ надо располагать в порядке "от меньших таблиц к большим", тогда запрос может выполниться быстрее. И абсолютно точно у запроса будет другой план.
А если располагать "как чаще", то план может оказаться похуже, чем в совете 27.
На всякий случай - в нём речь о порядке пар left join, а не о сплошном порядке таблиц.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725234
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerМожет я и не совсем прав, но совет 27 - явно спорный.

Совет 27 будет корректным при следующих условиях:
1. выполняется совет 35 (Обновляйте статистику индексов)
2. связь таблиц выполняется по индексируемым полям
3. для связи таблиц / поиска задействуется не более одного индекса, наиболее эффективного для данной операции поиска.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725236
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvНа всякий случай - в нём речь о порядке пар left join, а не о сплошном порядке таблиц.

Видимо, я ступил :)
Но не исключено, что не я такой один!
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725240
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
речь не о том, как у вас чаще. А о том, что если в запросе более двух left join, то ИХ надо располагать в порядке "от меньших таблиц к большим", тогда запрос может выполниться быстрее. И абсолютно точно у запроса будет другой план.
А если располагать "как чаще", то план может оказаться похуже, чем в совете 27.

Тогда каким образом влияет размер таблиц в LEFT JOIN. Вот в меня в одном справочнике 1000 записей, в другом 100000. И там и там ключ - ID. Думаю выигрыш будет лишь в том случае, если в дальнейшем в выражении WHERE будет фильтр как по первому справочнику (например, по неиндескированному полю NAME), так и по второму справочнику, и при этом будет быстрее сразу прекращать дальнейшие джойны после неуспешного поиска в мелкой таблицы.
А ведь и другая ситуация может быть: в большой таблице (справочнике) поиск выполняется быстро (по индексу), а в мелкой - медленно (нет индекса или индекс "тормозит"). Тогда опять совет 27 - не рулит.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725256
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

вообще-то ни один из этих советов не стоит использовать в лоб и повсеместно. Тут только как вариант попробовать, не факт что будет лучше, но может. И уж не в коем разе не стоит начинать оптимизировать, если производительность устраивает.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39725260
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

дело в том, что если при inner join оптимизатор может выбрать порядок объединения таблиц, то при left join он вынужден (может быть пока) объединять их в том порядке (парами), как они идут в запросе.
И вы когда пишете запрос, не задумыватесь о размере таблиц, а думаете о логике запроса.
А когда запрос готов, его план может быть весьма далеким от оптимального.

Особенно это касается универсальных систем типа erp. Запросы пишутся с предположением что "в этом виде бизнеса будет вот так и сяк", а на деле перекос по данным между таблицами А и Б у контор 1 и 2 может быть прямо противоположным.
При этом план с left join фактически действует как "прибитый вручную план". И т.д.
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39727854
crazypiggy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. В 34 способе написано 34. Не используйте VARCHAR для ключей
Не используйте VARCHAR для хранения идентификаторов, если это не необходимо – операции со строками медленнее, чем с числовыми типами. Особенно избегайте идентификаторов типа GUID для ключей Primary/Unique – из-за случайных значений скорость вставки или обновления такого столбца может быть от 3 до 20 раз медленее, чем в случае BIGINT.
Т.е. guid медленнее при вставке и обновлении чем bigint, даже если он определен как CHAR(16) CHARACTER SET OCTETS . Или это касается только varchar?
...
Рейтинг: 0 / 0
45 способов улучшить производительность Firebird
    #39727863
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crazypiggyТ.е. guid медленнее при вставке и обновлении чем bigint
между char и vharchar тут разницы никакой нет. Несколько лет назад на семинарах у нас один из докладов был про скорость вставки, в тестах скорость вставки в индексированный столбец varchar(32) раза в 3 медленнее, чем в bigint.
char(16) octets все равно по длине в 2 раза больше bigint. Кроме того, в bigint обычно пишут последовательный gen_id, а в guid - рандомное значение, что тоже ухудшает скорость вставки при наличии индекса по такому столбцу.
...
Рейтинг: 0 / 0
70 сообщений из 70, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]