是否有理由手动更新统计信息?

jra*_*ara 19 index sql-server maintenance statistics

在 SQL Server 中,统计信息会在Auto Update Statistics进入时自动更新True(这是默认设置)。是否有理由在什么情况下手动更新统计信息?

Aar*_*and 21

当然,如果您的数据更改频率高于自动统计数据的速率(或者,您经常更新 < 20% 的行,例如更新状态或日期/时间戳)。或者,如果您的表很大并且它的变化不足以触发自动统计更新。或者,如果您有过滤索引(因为自动统计阈值仍然基于整个表的变化百分比,而不是过滤索引中行子集的变化百分比)。


db2*_*db2 7

还有几个(表面的)原因:

自动更新统计信息将阻止触发更新的查询,直到新统计信息准备就绪。

...除非您还异步启用自动更新统计信息。然后触发更新的查询不会等待新的统计信息,而是可能会使用旧的、不正确的统计信息运行。

当具有一些相对较大的表(44M 行,8.5 GB)的数据库开始更新统计信息时,我也遇到了一些奇怪的阻塞问题。不过,在我能够真正追踪到正在发生的事情之前,我们已经停用了该应用程序。


Jim*_*mbo 5

是的,请记住,自动统计数据始终以默认采样率生成。该默认采样率可能无法准确生成代表您数据的统计信息。

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