В SQL Server статистика обновляется автоматически, когда Auto Update Statistics
в True
(что по умолчанию). Есть ли причина обновлять статистику вручную и при каких обстоятельствах?
19
В SQL Server статистика обновляется автоматически, когда Auto Update Statistics
в True
(что по умолчанию). Есть ли причина обновлять статистику вручную и при каких обстоятельствах?
Конечно, если ваши данные изменяются чаще, чем показатель автоматической статистики (или, скажем, вы часто обновляете <20% строк, как, например, обновление статусов или отметок даты / времени). Или, если ваша таблица огромна и не достаточно меняется, чтобы вызвать автоматическое обновление статистики. Или, если вы отфильтровали индексы ( поскольку порог автоматической статистики по-прежнему основан на% изменения всей таблицы, а не% изменения подмножества строк в фильтрованном индексе ).
Еще пара (поверхностных) причин:
Статистика автоматического обновления блокирует запрос, который вызвал обновление, пока новая статистика не будет готова.
... Если вы не включите автоматическое обновление статистики асинхронно. Тогда запрос, вызвавший обновление, не будет ждать новой статистики, но потенциально будет работать со старой, неправильной статистикой.
Я также столкнулся с некоторыми странными проблемами блокировки, когда база данных с некоторыми относительно большими таблицами (44M строк, 8,5 ГБ) начала обновлять статистику. Мы сняли это приложение с производства прежде, чем я смог реально отследить, что происходит.
источник
Да, помните, что автоматическая статистика всегда генерируется с частотой дискретизации по умолчанию. Эта частота дискретизации по умолчанию может не точно генерировать статистику, которая представляет ваши данные.
http://sqlblog.com/blogs/elisabeth_redei/archive/2009/03/01/lies-damned-lies-and-statistics-part-i.aspx
источник