Чи є причина оновлювати статистику вручну?


19

У SQL Server статистика оновлюється автоматично при Auto Update Statisticsвході True(що є за замовчуванням). Чи є причина оновлювати статистику вручну та за яких обставин?

Відповіді:


21

Звичайно, якщо ваші дані змінюються частіше, ніж швидкість автоматичної статистики (або, скажімо, ви часто оновлюєте <20% рядків, як-от оновлення статусів або відмітки дати / часу). Або якщо ваша таблиця величезна і вона недостатньо змінюється для запуску автоматичних оновлень статистики. Або якщо ви відфільтрували індекси ( оскільки поріг автоматичної статистики все ще базується на% зміни у всій таблиці, а не на% зміни підмножини рядків у відфільтрованому індексі ).


+1 для відфільтрованих індексів. Я думаю, що це головна причина або ДУЖЕ великі набори даних. У мене є таблиці, в які я вставляю 30м рядків на місяць, але це невеликий відсоток, тому статистика зазвичай не оновлюється, якщо я не розпочну її вручну.
JNK

+1 Також ви робите це за графіком, щоб скинути лічильники, означає менше шансів поза вікном обслуговування.
gbn

7

Ще кілька (поверхневих) причин:

Статистика автоматичного оновлення блокує запит, який ініціював оновлення, поки нова статистика не буде готова.

... Якщо ви також не включите статистику автоматичного оновлення асинхронно. Тоді запит, який викликав оновлення, не чекатиме нової статистики, але потенційно запускатиметься зі старою, неправильною статистикою.

Я також зіткнувся з деякими дивними проблемами блокування, коли база даних з деякими відносно великими таблицями (44М рядків, 8,5 ГБ) почне оновлювати статистику. Ми зняли цю програму ще до того, як я зміг реально відстежити, що відбувається.


1
+1 Це прекрасний момент щодо блокування та можливості асинхронізації.
Аарон Бертран

5

Так, пам’ятайте, що автоматична статистика завжди генерується зі швидкістю вибірки за замовчуванням. Ця частота вибірки за замовчуванням може не точно створювати статистику, яка представляє ваші дані.

http://sqlblog.com/blogs/elisabeth_redei/archive/2009/03/01/lies-damned-lies-and-statistics-part-i.aspx

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.