|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Такая проблема. И странное поведение. Создаю новую таблицу (на самом деле - две, вторая - агрегаты за период), в ней пк и еще один индекс. Эта таблица - 1 к 1 с существующей большой таблицей, с доп. данными. Начинаю наполнять её. Сразу скажу, что совет "вначале наполняй, а потом - создавай индексы" не поможет, т.к. одновременно происходит заполнение второй агрегатной таблицы уже заполненными данными из этой (по INNER JOIN с большой, основной таблицей). Основная таблица - 10 млн записей, из нее берется 1 млн. Для каждой записи из этого 1 млн. происходит еще запрос некоторых данных и некоторые рассчеты, затем сохраняется запись. Когда за период заполнили - связываем основную и рассчитанную, группируем и заносим данные в агрегатную. Периодов - примерно 10 тыс. Т.ч. индексы нужны сразу. Так вот, если только создать таблицы с индексами и сразу запустить рассчет - дождаться невозможно, прождал минут 10, ребутнул сервер. Запускаю рассчет малой доли данных - она рассчитывается за 3 секунды. В основную таблицу зашло около тысячи записей. Коммичу, захожу в ИБЕ в индексы этой новой таблицы - у всех статистика 0, включая ПК. Пересчитываю статистику, удаляю все данные, запускаю рассчет этой же малой доли данных - то же самое, 3 секунды. Несколько раз повторил эти сценарии - всё то же самое. Перезапустил сервер. Еще раз запускаю рассчет этой же малой доли данных - и о чудо! 78 миллисекунд! Рассчет всех данных - 30 секунд! Для верности еще пару раз повторил кейс, который приводит к быстрой работе: 1. Рассчитать малую часть данных; 2. Рассчитать статистику индексов на этой таблице; 3. Перезапустить сервер. Всегда помогает. Объяснение пока одно - сервер начинает использовать статистику не сразу после перерасчета, а после перезапуска. Можно это как-то объяснить? И можно как-то добиться этого эффекта (использования статистики) без перезапуска сервера? А то это тестовая база, а в реальных данных будет больше на порядок-два, да и просто сервер ребутать не охота... Спасибо. FB 3.0.6 x64 win, dialect 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:15 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Забыл добавить, SS. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:19 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
попробуй для начала реконнект. зы: выводы в большинстве своём не верные Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:22 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
YuRockМожно это как-то объяснить? Статистика собирается при коммите транзакции в которой был выполнен запрос "SET STATISTICS". Статистика используется при препарировании запроса. Если у тебя первое произошло после второго - ты ССЗБ. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:26 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Новые подробности :) Оказалось, ребут не нужен, достаточно переконнектиться к БД. Это уже намного проще. Остался такой, скорректированный вопрос: пересчитанная статистика индексов начинает использоваться только после реконнекта? Это нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:27 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Мимопроходящий попробуй для начала реконнект Мимопроходящий зы: выводы в большинстве своём не верные ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:28 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockМожно это как-то объяснить? Статистика собирается при коммите транзакции в которой был выполнен запрос "SET STATISTICS". Статистика используется при препарировании запроса. Если у тебя первое произошло после второго - ты ССЗБ.К сожалению, нет, после коммита рассчета статистики, я делаю новый запрос, новое препарирование, и он всё равно ее не использует. Только реконнект к базе помогает пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:33 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
YuRock К сожалению, нет, после коммита рассчета статистики, я делаю новый запрос, новое препарирование, и он всё равно ее не использует. Только реконнект к базе помогает пока. не верится. Тестовый примерчик можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:43 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Рассчёт в процедуре ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 18:57 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
hvlad Рассчёт в процедуре ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 19:36 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
Симонов Денис YuRock К сожалению, нет, после коммита рассчета статистики, я делаю новый запрос, новое препарирование, и он всё равно ее не использует. Только реконнект к базе помогает пока. не верится. Тестовый примерчик можно? Там EXECUTE BLOCK, в нем FOR SELECT DO EXECUTE PROCEDURE ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 19:38 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
YuRock hvlad Рассчёт в процедуре ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 19:39 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
YuRock YuRock hvladРассчёт в процедуре ? Да Выбить его из кеша можно только альтером процедуры. Ну или заново загрузить в кеш в новом коннекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 19:51 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
YuRock, ей-богу, чего вы такие дикие, ну одни и те же вопросы на протяжении 20ти лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 20:47 |
|
Статистика индексов считается и используется не сразу (а после перезапуска сервера)
|
|||
---|---|---|---|
#18+
hvlad YuRock пропущено... Это как-то связано, я так понял? ;) Выбить его из кеша можно только альтером процедуры. Ну или заново загрузить в кеш в новом коннекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2020, 23:44 |
|
|
start [/forum/topic.php?fid=40&fpage=11&tid=1560223]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 153ms |
0 / 0 |