|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Всем привет, http://ibase.ru/45-ways-to-improve-firebird-performance-russian With best regards, Alexey Kovyazin www.ibsurgeon.com www.ibase.ru/techsupp.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 09:42 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
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||’’). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 10:46 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Поясните, пожалуйста, этот финт: 30. Используйте производные таблицыИспользуйте производные таблицы (derived tables) для исключения ненужных сортировок: например, вместо Код: sql 1. 2. 3.
Используйте такой вариант: Код: sql 1. 2. 3.
Имеется в виду, что сортировка "узкого" курсора выполнится с меньшими затратами ресурсов? Т.е., вот этот вариант будет еще лучше: Код: sql 1. 2. 3.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:00 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
20 штПоясните, пожалуйста, этот финт: Сам же пояснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:01 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Вопрос такой: в таблице есть числовые поля и поля внешние ключи. По последним, естественно, созданы индексы. Записей много -- свыше 10 млн. Апдейтом меняются ТОЛЬКО числовые поля. В таком случае имеет смысл отключать индексы для ускорения процесса или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:05 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Там опечатка - имелось в виду Field2 в Order BY и в SELECT Но вообще да, можно и без дополнительно Field в селекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:06 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
sysdba22Вопрос такой: в таблице есть числовые поля и поля внешние ключи. По последним, естественно, созданы индексы. Записей много -- свыше 10 млн. Апдейтом меняются ТОЛЬКО числовые поля. В таком случае имеет смысл отключать индексы для ускорения процесса или нет? Нет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 11:07 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:06 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Док, +1. Подсветка, форматирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:07 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Какой... чудак... придумал номер 28? Дайте ему по башке чтобы так больше никогда не делал. Номер 43 (в свете 34) следует переформулировать как "никогда не используйте таблицы мониторинга". На номер 44 у вас, конечно же, есть экспериментальное подтверждение?.. И где способ номер 0: "помойте руки тому заскорузлому пареньку, что колбу держит повышайте квалификацию DBA и разработчика приложения всеми доступными методами"? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:27 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:31 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да ладно. 1. Таблицы мониторинга в тройке сильно шустрее 2. Совет из серии не тыкайте таблицы мониторинга куда попало, например в табличные триггеры. Про совсем речь конечно не идёт. Это полезный инструмент, когда им правильно пользуешься. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:34 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
это я про "никогда не используйте таблицы мониторинга". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 12:35 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Кстати, про №16 А нет планов научить сервер самостоятельно отключать/включать индексы на insert-select и merge ? Или он уже умеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:48 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
TonalКстати, про №16 А нет планов научить сервер самостоятельно отключать/включать индексы на insert-select и merge ? Или он уже умеет? Поясни, пожалуйста. Непосредственно перед Insert выключать, сразу после - включать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:54 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Tonal, нет. Все эти игры с отключением индексов работают только при монопольном доступе. Тем более что для PK, FK и UNIQUE ты их отключить не сможешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 13:57 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 12 мая 2016 г. 14:03:33: Симонов Денис> для PK, FK и UNIQUE ты их отключить не сможешь.можно. но не нужно. а вообще все эти советы ни о чём.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 14:04 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
В номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by Остальные замечания - брюзжание утомленных чешским пивом и питерским климатом мужчин :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:00 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Alexey KovyazinВ номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by Даже в этом случае его ограничивать не имеет никакого смысла. На быстродействии Firebird оно не скажется никак. От слова "совсем". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:02 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
ну, в общем автор статьи обозначился. а отчего не подписался то? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:08 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНа номер 44 у вас, конечно же, есть экспериментальное подтверждение?..Есть. Да ты и сам можешь его проверить. В известном тебе тесте запусти молотьбу, предварительно выставив в oltpNN_config-файле no_auto_undo = 0 по итогам пробегов ~ августа 2014 Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:14 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Alexey Kovyazin, на счёт 28. Как раз наоборот. FIRST/SKIP, FETCH/OFFSET, ROWS без ORDER BY вернёт случайный набор записей. Ну с GROUP BY он обычно не подразумевается. В Firebird 3 FIRST/SKIP, FETCH/OFFSET, ROWS меняет стратегию оптимизатора на FIRST ROWS, так что он может поменять план. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:15 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Alexey KovyazinВ номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by ... И не забываем про 30! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:16 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
ТаблоидЕсть. Да ты и сам можешь его проверить. При всём уважении к твоему тесту... Ты же понимаешь, что каждая откаченная транзакция с этим флагом автоматически тормозит счётчик ОAТ и неизбежно приводит к запуску свипа?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:18 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, возможно, что я видел положительный эффект именно от того, что свип... ни разу так и не стартовал. Потому что все транзакции в этом тесте стартуют как snapshot, и среди них постоянно есть несколько сильно застрявших. Свип стартует в итоге почти всегда только под занавес - когда молотилки отваливаются ввиду истечения таймаута. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:25 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
20 шт, про 30 надо пробовать. Этот способ спасает только когда есть очень широкие сортировки, которые гарантировано вылетят из TempCacheLimit ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:30 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Симонов Денис20 шт, про 30 надо пробовать. Этот способ спасает только когда есть очень широкие сортировки, которые гарантировано вылетят из TempCacheLimit Я уже давно такой финт использую: для отображения получаю только список идентификаторов, отсортированный и отфильтрованный по значениям других полей, а при отображении закачиваю только то, что желает показать в данный момент гуй ("грид"), т.е. не больше одного-двух экранов. Выборка безобразно широченная, ибо юзеры сами определяют, что показывать, и никто, естественно, их по рукам не бьёт, ограничивая. И индексов по полям нет. Нормально, пока, жалоб нет. Delphi + VirtualTreeView. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:38 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
20 шт, я к тому что не следует пихать во все дыры. Главное правило оптимизации это отказ от преждевременной оптимизации. Не тормозит, тогда и не надо оптимизировать. Затормозило - начинаем пробовать различные способы. А то что тебе помогает это хорошо. Способ старый и давно известный. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:42 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Симонов Денис20 шт, я к тому что не следует пихать во все дыры. Главное правило оптимизации это отказ от преждевременной оптимизации... Конечно же, да. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:45 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 12 мая 2016 г. 17:43:46: Симонов Денис> Главное правило оптимизации это отказ от преждевременной оптимизации.золотые слова! а советы из серии "пейте морковный сок для укрепления семьи", без указания контекста применения рецепта, выглядят как забавная попытка сформулировать всеобщие законы вселенской гармонии, невзирая на возраст и пол пациентов. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 17:47 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Мимопроходящий> а советы из серии "пейте морковный сок для укрепления семьи", Мимопроходящий> без указания контекста применения рецепта, Мимопроходящий> выглядят как Мне это больше напомнило анекдот про волка, логику и спички. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2016, 18:02 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Было бы здорово, если бы кто-нибудь написал про свой список способов, пусть не 45 способов, но в общую копилку добавилось бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 00:24 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Hello, Alexey Kovyazin! You wrote on 17 мая 2016 г. 10:46:20: Alexey Kovyazin> Было бы здорово, если бы кто-нибудь написал про свой список способов, > пусть не 45 способов, но в общую копилку добавилось бы.доктор, а вы по фотографии пациентов не лечите? НЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 10:47 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
МимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК ТОПОР ТЧК ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 10:58 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
МимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК то есть, все 45 советов - говно? И вообще советов давать не надо? Т.е. хрен с ним, как работало, пусть так и работает? Я хочу понять логику отрицания. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:22 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdvМимопроходящийНЕТ УНИВЕРСАЛЬНЫХ РЕЦЕПТОВ ТЧК то есть, все 45 советов - говно? И вообще советов давать не надо? Т.е. хрен с ним, как работало, пусть так и работает? Я хочу понять логику отрицания. К любому совету можно доклепаться. У всех разные базы, выборки, требования. Поэтому универсальных советов нет. Ну разве что о том, что конфиги сервера по умолчанию несколько э-э неоптимальны. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:27 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Alexey KovyazinБыло бы здорово, если бы кто-нибудь написал про свой список способов 0. Используй мозг чтобы не отклоняться от методологии KISS. 1. Читай dataaccesspath.html. 2. Если можешь что-то не делать - не делай это. 3. Предпочитай эффективность кода его красоте или краткости. 4. Если не знаешь как написать какой-то запрос - перепроектируй БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:28 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov4. Если не знаешь как написать какой-то запрос - перепроектируй БД. Был у нас админ. Реальный. При неработающей мышке залил систему с нуля. Хуже может быть только то, что он ничего не сохранил перед заливкой. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:32 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:34 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DarkMaster, Dimitry Sibiryakov, Мимопроходящий я понял. Вы, при всем уважении, просто сферические кони в вакууме. Пообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45 советов написали. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:54 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdvПообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45 советов написали. От этого станет ясно "для кого". "Зачем" - несколько другой вопрос. Всерьёз надеетесь, что кто-то из этих реальных пацанов разработчиков их прочтёт?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 12:58 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
универсальных советов в оптимизации SQL точно не существует. Есть лишь некоторые способы которые можно попробовать. Они могут дать, а могут и не дать положительный эффект. И пробовать надо только тогда когда эти тормоза есть. А вот советы касающиеся дисковой подсистемы хуже никому не сделают. То же самое касается замены параметров в дефолтном конфиг для начала на рекомендуемые. Понятное дело что дальше надо подгонять. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:00 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DarkMaster> Поэтому универсальных советов нет. Очевидно, поэтому надо давать неуниверсальные, а частные, для конкретных случаев/проблем и т.д. Плюс совет/рекомендация совету/рекомендации рознь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:09 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdv... Я хочу понять логику отрицания. А то ты первый день на sql.ru "Дерусь просто потому что я дерусь" - (с) /Портос/ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:10 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Hello, Симонов Денис! You wrote on 17 мая 2016 г. 13:08:31: Симонов Денис> А вот советы касающиеся дисковой подсистемы хуже никому не сделают. советы из серии "лучше быть здоровым И богатым, чем бедным и больным". дисковая подсистема, как и всё железо, регламентируется финансовыми лимитами. а не благими намерениями абстрактного характера. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:10 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdvя понял. Вы, при всем уважении, просто сферические кони в вакууме. Пообщайтесь с админами и разработчиками ФБ, и станет ясно, зачем мы эти 45 советов написали. Дим, ну вот скажи, если я (ну или не я) прибегу завтра с воплями "спасите-помогите" - ты меня к этим советам отправишь, что сразу решит мои проблемы? Вангую будет наоборот - начнется долгий флейм по поводу выяснения причин торможения именно на моей базе и именно в моем окружении. Из полезного я уже упомянул об оптимизации конфигов, все остальное из области общих рекомендаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:21 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DarkMaster> начнется долгий флейм по поводу выяснения причин Наивный. Сначала начнётся торг. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:34 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DarkMasterИз полезного я уже упомянул об оптимизации конфигов, все остальное из области общих рекомендаций. А вот не соглашусь. И не только конкретно с тобой, а вобще с общим посылом. Для администратора, не имеющего доступа к исходному коду приложения, и которому при этому надо заставить очередной клиент очередного пенсионного фонда работать быстрее, очень даже пригодятся первых 15 советов. Как раз чтобы не нарваться на очередной флейм или очень правильные но при этом весьма специфически сформированные рекомендации от ДС, МП и иже с ними Отдельно отметил для себя советы касаемо FB3+. Буду помнить, что они собраны в одном месте (авторизация, deterministic, etc). Да, я тоже много лет читаю форум и все это видел, но деталей не помню. ПММ, рекомендации - нужные. Прямого вреда от их применения лично я не вижу и буду весьма признателен за конкретные сценарии. Ну и само собой, что нулевой совет от ДСа - он как бы подразумевается. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 13:49 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
miwaonlineДля администратора, не имеющего доступа к исходному коду приложения, и которому при этому надо заставить очередной клиент очередного пенсионного фонда работать быстрее Да, для эникейщика, которому и БД и приложение и сервер - одинаковые чёрные ящики, эти советы вполне годятся. Как и в том анекдоте: "по колесу попинать, стекло протереть"... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 14:13 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамDarkMaster> начнется долгий флейм по поводу выяснения причин Наивный. Сначала начнётся торг. Ну дык куды ж без этого :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 14:15 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Хочу сказать авторам огромное спасибо за их работу! Некоторые советы напомнили о вещах, о которых забыл, некоторые заставили задуматься о том, о чем вообще не думал или не знал вовсе, некоторые подтвердили правильность собственных наработок, что порадовало, а некоторые советы заставят некоторые мои решения, похоже, пересмотреть. Не знаю, как там у мастеров, хотя их критику здесь тоже очень полезно почитать, но нам, новичкам, такие материалы крайне полезны. Даже если что-то тут окажется и неверным, все равно это полезно. Это очень ценный опыт. Может и высокопарно получилось, но зато от души, поверьте :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 21:08 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Да, нормальные советы. Пара-тройка советов не совсем хорошо обьяснена, так скажем (кое где надо было по-развернутее расписать, зачем и когда такое лучше применять), а вообще вполне полезная статья. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2016, 22:09 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
К советам еще можно добавить что-то типа: "Если у вас есть таблица с множеством столбцов, в которой при OLTP нагрузке часто меняются значения только некоторых определенных столбцов в наборе строк этой таблицы, вынесите эти столбцы в отдельную таблицу, связав их 1:1 с мастер таблицей по первичному ключу." ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:56 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
rdb_dev, из чернового документа много таких вещей повыкидывали, потому что они не совсем однозначны, и относятся к оптимизации+проектированию БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 15:59 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdv, мне казалось, данный совет имеет очевидный плюс в версионных СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 16:04 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
rdb_dev, по моему практическому опыту, делить таблицы 1:1, или даже дублировать, бывает полезно независимо от версионности. Кроме того, если посмотреть статистику БД, в таких таблицах обычно размер версии МЕНЬШЕ размера записи. Т.е. есть упаковка, поэтому особого прироста при таком делении "из-за версионности" можно и не получить. p.s. и индексы по неизменяемым при update столбцам тоже не меняются, а не как у некоторых других СУБД. Так что по версионности все же основной совет - не держать транзакции длинными. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 16:10 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
А есть книжки "по оптимальному проектированию с финтами и извращениями" для других СУБД? Можно было бы попробовать что-то полезное вытянуть. К примеру, совет "30. Используйте производные таблицы" - имхо, вполне пригоден не только для FB. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2016, 18:32 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
авторSSD обеспечивает более высокую скорость произвольного ввода-вывода, чем обычные жесткие диски. Работа с БД в основном состоит из большого количества операций чтения-записи в разных местах файла БД, и поэтому SSD дают существенный выигрыш в производительности баз данных ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом...кол-во записи в ячейку ограничено и следит за этим трим, кот. не в каждой системе есть, хотя у самсунга она встроена, начиная с кого-то-там поколения....короче есть сомнения по поводу SSD...хотя я, может, порос мхом, как полагается с южной стороны... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2016, 17:09 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
SangYong> ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом Гм... Это сколько? 5, 10, 20? Каких брендов, моделей? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2016, 17:21 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
SangYong...ssd в этом тысячелетии я выкинул больше, чем "дятлов" в прошлом... Немудрено. А 100 лет машинные носители информации вообще ничего не "сыпались". Карты имени товарища Германа Холлерита до сих пор читаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2016, 08:50 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
SangYongкол-во записи в ячейку ограничено и следит за этим трим, кот. не в каждой системе есть trim уже есть практически везде, а если нет на каком-то десктопе, значит или матплата старая, или надо обновить биос. подсчитать "срок жизни" ssd по перезаписи - тоже не проблема. Например, с ресурсом ячейки в 3000 циклов, и размером диска 120 гиг, на такой диск можно записывать/менять по 12 гиг данных, в течение 8 лет. Или 24 гиг данных, в течение 4х лет. Сейчас вообще стали писать в параметрах, сколько гиг каждый день можно записывать за сколько лет, так что даже вычислять не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2016, 11:08 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
27. Упорядочите внешние соединения Если в вашем запросе есть несколько групп LEFT OUTER JOIN, старайтесь расположить их так, чтобы вначале были таблицы с меньшим количеством записей, а затем – с большим. Случайно с правый джойном не перепутали? По своему опыту при использовании LEFT JOIN чаще всего сперва идёт ведущая таблица, с которой начинается поиск (самая большая, обычно таблица транзакций, фильтруется по дате/времени), затем к ней подцепляются различные справочники (конечно, если нужен дополнительный фильтр по элементам справочника, то порядок может быть другим). Может я и не совсем прав, но совет 27 - явно спорный. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 18:58 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
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, а не о сплошном порядке таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 19:49 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DmSerМожет я и не совсем прав, но совет 27 - явно спорный. Совет 27 будет корректным при следующих условиях: 1. выполняется совет 35 (Обновляйте статистику индексов) 2. связь таблиц выполняется по индексируемым полям 3. для связи таблиц / поиска задействуется не более одного индекса, наиболее эффективного для данной операции поиска. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 19:52 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
kdvНа всякий случай - в нём речь о порядке пар left join, а не о сплошном порядке таблиц. Видимо, я ступил :) Но не исключено, что не я такой один! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 19:55 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
речь не о том, как у вас чаще. А о том, что если в запросе более двух left join, то ИХ надо располагать в порядке "от меньших таблиц к большим", тогда запрос может выполниться быстрее. И абсолютно точно у запроса будет другой план. А если располагать "как чаще", то план может оказаться похуже, чем в совете 27. Тогда каким образом влияет размер таблиц в LEFT JOIN. Вот в меня в одном справочнике 1000 записей, в другом 100000. И там и там ключ - ID. Думаю выигрыш будет лишь в том случае, если в дальнейшем в выражении WHERE будет фильтр как по первому справочнику (например, по неиндескированному полю NAME), так и по второму справочнику, и при этом будет быстрее сразу прекращать дальнейшие джойны после неуспешного поиска в мелкой таблицы. А ведь и другая ситуация может быть: в большой таблице (справочнике) поиск выполняется быстро (по индексу), а в мелкой - медленно (нет индекса или индекс "тормозит"). Тогда опять совет 27 - не рулит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 20:06 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DmSer, вообще-то ни один из этих советов не стоит использовать в лоб и повсеместно. Тут только как вариант попробовать, не факт что будет лучше, но может. И уж не в коем разе не стоит начинать оптимизировать, если производительность устраивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 20:32 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
DmSer, дело в том, что если при inner join оптимизатор может выбрать порядок объединения таблиц, то при left join он вынужден (может быть пока) объединять их в том порядке (парами), как они идут в запросе. И вы когда пишете запрос, не задумыватесь о размере таблиц, а думаете о логике запроса. А когда запрос готов, его план может быть весьма далеким от оптимального. Особенно это касается универсальных систем типа erp. Запросы пишутся с предположением что "в этом виде бизнеса будет вот так и сяк", а на деле перекос по данным между таблицами А и Б у контор 1 и 2 может быть прямо противоположным. При этом план с left join фактически действует как "прибитый вручную план". И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2018, 20:41 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
Добрый день. В 34 способе написано 34. Не используйте VARCHAR для ключей Не используйте VARCHAR для хранения идентификаторов, если это не необходимо – операции со строками медленнее, чем с числовыми типами. Особенно избегайте идентификаторов типа GUID для ключей Primary/Unique – из-за случайных значений скорость вставки или обновления такого столбца может быть от 3 до 20 раз медленее, чем в случае BIGINT. Т.е. guid медленнее при вставке и обновлении чем bigint, даже если он определен как CHAR(16) CHARACTER SET OCTETS . Или это касается только varchar? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 18:06 |
|
45 способов улучшить производительность Firebird
|
|||
---|---|---|---|
#18+
crazypiggyТ.е. guid медленнее при вставке и обновлении чем bigint между char и vharchar тут разницы никакой нет. Несколько лет назад на семинарах у нас один из докладов был про скорость вставки, в тестах скорость вставки в индексированный столбец varchar(32) раза в 3 медленнее, чем в bigint. char(16) octets все равно по длине в 2 раза больше bigint. Кроме того, в bigint обычно пишут последовательный gen_id, а в guid - рандомное значение, что тоже ухудшает скорость вставки при наличии индекса по такому столбцу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 18:24 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1560921]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 467ms |
0 / 0 |