![]() |
|
Модераторы: Akella |
![]()
|
|
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
Есть 2 Базы с одинаковыми метаданными, отличаются только данными.
Одна из Баз стала сильно тормозить, выяснилось что в сохраненке у 1 запроса изменился план, из за чего и появились тормоза. По какой причине запрос мог изменить свой план? баг или фича оптимизатора запросов? зы Бекап/ресторе базы вернул изначальный план. firebird 2.0.3 Это сообщение отредактировал(а) Frees - 26.7.2010, 08:51 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Нужно было сделать пересчет статистики индексов.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
Deniz, поясни, зачем пересчет?
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Со временем индексы "устаревают" и оптимизатор может перестать использовать индекс.
Если осталась старая БД с тормозами, проверь поможет ли пересчет индексов. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
К сожалению я ее восстановил рестором.
как понять что в базе есть устаревшие индексы, из за чего они "стареют"? Добавлено через 2 минуты и 8 секунд еще такой момент если я явно дописывал "сломавшемуся" запросу plan, то он начинал правильно работать. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Добавлено через 3 минуты и 6 секунд PS: ручное "планирование" не есть гуд, данные (может и метаданные) меняются и оптимизатор может со временем предложить лучший план. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
получается изменения плана запроса это все таки фича... актуальность статьи 93 год,она все еще верна? все еще проблема решается только принудительным обновление статистики индекса? как с этим в последних версиях firebird? -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
про сильно последние версии сказать не могу, но в 1.5 периодически статистику собираю.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
да, к сожалению, программист сам должен периодически обновлять статистику индексов. Я в своих приложениях даже такую команду вставляю. дельфи + FibPlus
|
||||
|
|||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
и когда эту акцию выполняешь, или это кнопка для пользователя (типо "нажми если тормозит")? а время выполнения этого кода на много быстрее чем бекап - ресторе? подумаваю о кнопке "бекап - рестор" Это сообщение отредактировал(а) Frees - 26.7.2010, 13:57 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Цитата из IBAnalyst
Добавлено через 2 минуты и 51 секунду
Далее в автомате настроить такой запрос по ночам, хоть каждый день. это нужно с умом делать. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||||
|
|||||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
кнопка для пользователя, но всё хочу реализовать в базе какую-то таблицу, где хранить кол-во добавленных, отредактированных, удалённых записей (можно на триггеры повесить), и через каждые, например, 100 записей в фоне выполнять пересчёт индексов.
конечно, если небольшая база, то ваще секунду, и пользователей не нужно отключать |
||||
|
|||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
меня бы больше устроило что бы оптимизатор не менял планов. если забить таблицу со статистико нулями, оптимизатор должен будет действовать всегда одинаково. или это тупиковая идея?
Это сообщение отредактировал(а) Frees - 26.7.2010, 18:30 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Это не правильно. Возможно в след. версиях это поведение как-то изменят. В любом случае, надо же делать периодический backup так вот в скрипте (там же где backup) можно собрать статистику по индексам (написав небольшую консольную программку). Добавлено через 10 минут и 46 секунд В дополнение несколько ссылок: SET STATISTICS INDEX name; скрипт для деактивации всех индексов Для перестройки индекса: ALTER INDEX -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 1 Всего: 54 |
может и не правильно но как минимум будет предсказуемое поведение. бекап надо, но то что надо делать еще и рестор не всем клиентам очевидно, поэтому и думал сделать бекап рестор в один клик ,тут много своих проблем. пока есть 2 варианта: 1) делать SET STATISTICS при бекапе, тут опять плохо что многие не делают бекап а просто сохраняют копию файла бд (как не объясняй что это плохо) 2) кнопка для пользователя, тут другой минус пользователю сложно объяснить зачем он должен ее нажимать -------------------- Кольцов Виктор Владимирович |
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |