Есть ли причина обновлять статистику вручную?


19

В SQL Server статистика обновляется автоматически, когда Auto Update Statisticsв True(что по умолчанию). Есть ли причина обновлять статистику вручную и при каких обстоятельствах?

Ответы:


21

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


+1 за отфильтрованные индексы. Я думаю, что это основная причина или ОЧЕНЬ большие наборы данных. У меня есть таблицы, в которые я вставляю 30 миллионов строк в месяц, но это небольшой процент, поэтому статистика обычно не обновляется, если я не запускаю ее вручную.
JNK

+1 Кроме того, вы делаете это по расписанию, чтобы сбросить счетчики, что означает меньше шансов за пределами вашего окна обслуживания.
ГБН

7

Еще пара (поверхностных) причин:

Статистика автоматического обновления блокирует запрос, который вызвал обновление, пока новая статистика не будет готова.

... Если вы не включите автоматическое обновление статистики асинхронно. Тогда запрос, вызвавший обновление, не будет ждать новой статистики, но потенциально будет работать со старой, неправильной статистикой.

Я также столкнулся с некоторыми странными проблемами блокировки, когда база данных с некоторыми относительно большими таблицами (44M строк, 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.