powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird
25 сообщений из 70, страница 1 из 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
25 сообщений из 70, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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