Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird / 25 сообщений из 70, страница 1 из 3
12.05.2016, 09:42
    #39233982
Alexey Kovyazin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
Всем привет,

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
12.05.2016, 10:46
    #39234050
20 шт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
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
12.05.2016, 11:00
    #39234069
20 шт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
Поясните, пожалуйста, этот финт:

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

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

+1.

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

И где способ номер 0: "помойте руки тому заскорузлому пареньку, что колбу держит
повышайте квалификацию DBA и разработчика приложения всеми доступными методами"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.05.2016, 12:31
    #39234206
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
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
12.05.2016, 12:34
    #39234208
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
Dimitry Sibiryakov,

да ладно.

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

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

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

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

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.05.2016, 17:00
    #39234500
Alexey Kovyazin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
В номере 28 действительно ошибка из серии потеряного NOT - фетч имеет смысл ограничивать только если НЕ Order by /group by
Остальные замечания - брюзжание утомленных чешским пивом и питерским климатом мужчин :)
...
Рейтинг: 0 / 0
12.05.2016, 17:02
    #39234502
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
Alexey KovyazinВ номере 28 действительно ошибка из серии потеряного NOT - фетч
имеет смысл ограничивать только если НЕ Order by /group by
Даже в этом случае его ограничивать не имеет никакого смысла. На быстродействии Firebird
оно не скажется никак. От слова "совсем".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.05.2016, 17:08
    #39234512
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
ну, в общем автор статьи обозначился.
а отчего не подписался то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.05.2016, 17:14
    #39234517
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
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
12.05.2016, 17:15
    #39234519
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
45 способов улучшить производительность Firebird
Alexey Kovyazin,

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

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

возможно, что я видел положительный эффект именно от того, что свип... ни разу так и не стартовал. Потому что все транзакции в этом тесте стартуют как snapshot, и среди них постоянно есть несколько сильно застрявших. Свип стартует в итоге почти всегда только под занавес - когда молотилки отваливаются ввиду истечения таймаута.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / 45 способов улучшить производительность Firebird / 25 сообщений из 70, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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