План изменился?Ulme писал(а):после этого запрос делается за 30-90 ms
Сборка мусора, автоматический бэкап/рестор
Модераторы: kdv, Alexey Kovyazin
запрос№1WildSery писал(а):План изменился?Ulme писал(а):после этого запрос делается за 30-90 ms
был
Код: Выделить всё
Plan
PLAN SORT (JOIN (JOIN (C NATURAL, DC INDEX (RDB$FOREIGN47), D INDEX (RDB$PRIMARY5)), AO INDEX (Ind_Run_Time_Archive)))
Adapted Plan
PLAN SORT (JOIN (JOIN (C NATURAL, DC INDEX (FK_DriverCar_Signal), D INDEX (PK_Drivers)), AO INDEX (Ind_Run_Time_Archive)))
Код: Выделить всё
Plan
PLAN SORT (JOIN (JOIN (DC NATURAL, C INDEX (RDB$33), D INDEX (RDB$PRIMARY5)), AO INDEX (Ind_Run_Time_Archive)))
Adapted Plan
PLAN SORT (JOIN (JOIN (DC NATURAL, C INDEX (INTEG_38), D INDEX (PK_Drivers)), AO INDEX (Ind_Run_Time_Archive)))
Твоё "стал" как раз соответствует тому, что ты раньше показывал, а вот "был" я ещё не видел.
Что-то ты либо запутался, либо сказки рассказываешь (по поводу одинаковости плана).
Никакой бэкап-рестор не может так БД размером в жалкие полтора гига ускорить, хоть там три четверти мусорных записей будет.
Что-то ты либо запутался, либо сказки рассказываешь (по поводу одинаковости плана).
Никакой бэкап-рестор не может так БД размером в жалкие полтора гига ускорить, хоть там три четверти мусорных записей будет.
Дейстительно, надо поменять местамиWildSery писал(а):Твоё "стал" как раз соответствует тому, что ты раньше показывал, а вот "был" я ещё не видел.
про то, что невозможно такого ускорения...то я бы был только рад что такое не возможно, так как делать выезды к 20 клиентам(мало кто разрешает RAdmin ставить) для бэкап/рестора это мягко говоря гемморно. Но IBExpert показывает именно то, что запрос для базы упал с 40 секунд до 30-90мс.
Кстати для базы А после бекап/рестора этот же запрос обрабатывался за 1,5-2с, а стал тоже за 30-90мс
Интересно, что можно в базе еще "обновлять/исправлять", кроме свипа и обновления статистики индексов?
А если есть таблица RunOrders, т.е. текущие заказы (которые через некоторое время попадают в ArchiveOrders), и в которой постоянно происходят Delete'ы и Update'ы, и мусора там в любом случае будет много.kdv писал(а):приложение надо исправлять. чтобы не плодило мусор.
Но сейчас интересно другое - что делает бэкап/рестор кроме очистки от мусора(не занятого транзакциями) + обновление статистики индексов + ... Х.Борри говорит о "освобождение пространства, занимаего удаленными записями и упаковку остальных данных что часто улучшает производительность", однако подробнее про последний момент не написано.
Мой запрос более-менее вменяемый, работает с нормальными индексам, мусор собран свипом. Так что же такое сделал бэкап/рестор, что время выполнения уменшилось на порядок?
"мусор, не занятый транзакциями"?что делает бэкап/рестор кроме очистки от мусора(не занятого транзакциями) + обновление статистики индексов +
Вы бы лучше читали вот это:
www.ibase.ru/devinfo/garbage.htm#backup
изменился план запроса.Так что же такое сделал бэкап/рестор, что время выполнения уменшилось на порядок?
из-за
1. пересчета статистики (при ресторе)
2. "дефрагментации" таблиц. Это надо было смотреть до и после IBAnalyst-ом.
p.s.
- бэкап читает все последние committed-версии запис и сохраняет их в файл
- рестор создает новую пустую БД и наливает туда данные из бэкапа