当 SQL Server 数据库打开自动创建/更新统计信息时,是否需要手动更新统计信息?

当 SQL Server 数据库打开自动创建/更新统计信息时,是否需要手动更新统计信息?

是否需要手动更新统计数据定期(例如每天)检查 SQL Server 数据库自动创建统计信息自动更新统计信息选项包括

答案1

是的,您需要手动更新统计数据,特别是当您的数据库变得越来越大时。

仅当表的数据比上次更新统计信息时增长了 20% 时,自动更新统计信息逻辑才会启动。在较大的表中,这可能包含数亿条记录。在这些情况下,统计信息在自动更新逻辑启动之前就会过时,因此您必须手动更新它们。

现在,如果您定期重建索引,那么索引的统计数据将已经更新,因为这是索引重建过程的一部分。如果您对索引进行碎片整理而不是重建索引,那么您将需要更新统计数据,因为对索引进行碎片整理时不会自动更新统计数据。

答案2

建议的做法是将统计信息作为维护计划的一部分每晚更新。如果您不这样做,并且关闭这两个选项,则统计信息不会更新,查询性能将受到影响。

答案3

博客 BenchmarkIT 测试了“20% 规则”他的帖子在这里

主要发现是它确实更新了统计数据关于聚集索引的统计信息当表的 20% 以上被更改时,但它似乎不会自动更新与其他指数在同一张桌子上。

他的早期作品此处发布博客文章查看重新索引数据库时发生的情况。它表明重建索引确实会更新统计数据对于该索引,但任何与索引无关的“独立”统计数据都不会更新。

这两者都为“是的,您需要手动更新统计数据”的论点提供了更多支持。

相关内容