10.10.2013, 09:49 | #1 |
Участник
|
Периодичность сбора статистики
Тут сотрудник поддержки запостил интерестную статью
SQL Server Trace Flag 2371 for Dynamics AX ( http://blogs.msdn.com/b/axinthefield...namics-ax.aspx) по сути он предлагает флагом сократить интервалы автосбора статистики. не считаете ли вы что эффект будет негативным(в середине дня запустится какое-нибудь обновление InventTrans). кроме того интерестно, видел ли кто нибудь планы которые действительно менялись от устаревшей менее чем на 20% статистики. (граница авто пересчета когда включен автосбор статистики) |
|
10.10.2013, 10:03 | #2 |
Moderator
|
По моим наблюдениям, в 85% случаев, кривые планы лечаться командой DBCC FREEPROCCACHE(), которая кэш планов очищает. Только в оставшихся 15% случаев реально нужен пересбор статистики. Обычно, кривой план исполнения является результатом использования parameters sniffing. План запроса строится для первой попавшейся комбинации параметров запроса и потом достаточно долго повторно используется (там есть критерии устаревания плана, но скорее всего, план просто будет выкинут из кэша из за того что на одной из используемых в нем таблиц случилось автоматическое обновление статистики). Так что - возможно что этот флаг на самом деле помогает не потому что статистик чаще обновляется, а потому что более частый автоматический сбор статистики сокращает среднее время жизни закэшированного плана запроса, снижая шансы на то что кривой план будет повторно использоваться недельку-другую.
Так что я подопечных админов учу так: Если какая-то из форм начала внезапно сильно тормозить, то просто очистите план запроса. Ну и каждую ночь с субботы на воскресенье - пересбор статистики по всем таблицам и всем записям таблицы. Да - возможно это несколько избыточно, но обычно времени за ночь хватает на пересбор и очень большой дополнительной нагрузки на сервер это не создает. (По крайней мере - пользователи не жалуются). Единственное исключение - таблицы сводного планирования (reqTrans/ReTransCov/ReqPo). Просто при регенерации плана (каждую ночь обычно), система сносит содержание одного из планов (а их обычно не так много 2-3-4) и перегенерирует данные заново. В этой ситуации, мы просто поставили батч на пересчет плана на 18:00 и maintanance plan в SQL Server на обновление статистики по этим таблица - на 18:40. Просто эмпирически выяснили что где-то в 19:00 регенерация плана начинает тормозить и ей можно здорово помочь обновлением статистики... |
|
|
За это сообщение автора поблагодарили: trud (3), S.Kuskov (3). |
10.10.2013, 10:06 | #3 |
Модератор
|
нет
Цитата:
(в середине дня запустится какое-нибудь обновление InventTrans)
20% - это очень много при наличии длинной истории (например транзакции за пять лет). Например, в системе постится по 10 миллионов INVENTTRANS в год в течение пяти лет, последний раз статистика была "автообновлена" 31.12.2012. Согласно ей, в 2013 у нас в 2013 году пусто (а это далеко не так), а сиквел узнает что это не так когда она в следующий раз она решит обновиться (31.12.2013). Что для запросов с "больше-меньше" условиями по финановой или физической дате согласитесь не очень здорово. Цитата:
кроме того интерестно, видел ли кто нибудь планы которые действительно менялись от устаревшей менее чем на 20% статистики. (граница авто пересчета когда включен автосбор статистики)
__________________
-ТСЯ или -ТЬСЯ ? |
|
10.10.2013, 10:32 | #4 |
Участник
|
Цитата:
Цитата:
When you installed AX2012 R2 CU6, it would have created 2 new records in SYSGLOBALCONFIGURATION with names ( 'DATAAREAIDLITERAL', 'PARTITIONLITERAL'). To turn the feature ON you need to update these records and set the value to 1. Following update will enable the feature on all the AOS. Note: This feature is turned OFF by default.
Последний раз редактировалось gl00mie; 10.10.2013 в 10:34. Причина: исправление copy-paste'а |
|
|
За это сообщение автора поблагодарили: Vadik (1), trud (2), S.Kuskov (3), Kabardian (2). |
10.10.2013, 10:52 | #5 |
Участник
|
Цитата:
Сообщение от Vadik
нет
20% - это очень много при наличии длинной истории (например транзакции за пять лет). Например, в системе постится по 10 миллионов INVENTTRANS в год в течение пяти лет, последний раз статистика была "автообновлена" 31.12.2012. Согласно ей, в 2013 у нас в 2013 году пусто (а это далеко не так), а сиквел узнает что это не так когда она в следующий раз она решит обновиться (31.12.2013). Что для запросов с "больше-меньше" условиями по финановой или физической дате согласитесь не очень здорово. |
|
10.10.2013, 10:56 | #6 |
Moderator
|
Цитата:
Сообщение от gl00mie
Небольшой offtopic на счет parameter sniffing, его отключения и разгромного объяснения, почему оно не поможет:
P.S. Вообще умиляет вера заметной части админов в то, что во всех микрософтовских продуктах есть God Mode. Поставил просто нужный флажек и все проблемы решились сами... |
|
10.10.2013, 11:07 | #7 |
Модератор
|
Цитата:
20% от терабайтной БД - это до 200 GB данных о распределении которых отпимизатор ничего не знает. Согласитесь, перелопачивать их каждый раз с неудачным планом исполнения как-то не очень здорово
__________________
-ТСЯ или -ТЬСЯ ? |
|
Теги |
sql, статистика |
|
Похожие темы | ||||
Тема | Ответов | |||
оптимизация запроса статистики по клиенту | 2 | |||
Пакетник - периодичность "Каждый день" - это 5 дней из 7 | 10 | |||
Группа статистики | 0 |
|