是否为SQL Server数据库启用自动创build/更新统计信息时手动更新必要的统计信息?

AUTO_CREATE_STATISTICSAUTO_UPDATE_STATISTICS选项为ON时,是否有必要定期(例如,每天)手动更新 SQL Server数据库的统计信息

是的,您需要手动更新统计信息,尤其是在您的数据库变大时。

auto_update统计逻辑仅在表的增长量比最后一次统计信息更新时增加了20%之后才开始执行。 在较大的表格中,这可能是数亿条logging。 在这些情况下,统计数据将在自动更新逻辑开始之前变得过时,因此您必须手动更新它们。

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

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

Blogger BenchmarkIT在他的post里testing了“20%的规则”。

主要的发现是,当表的20%以上被更改时,似乎更新了聚集索引统计信息的统计信息 ,但似乎没有自动更新与同一表中的其他索引关联的统计信息。

他在此之前的博客文章介绍了在重新编制数据库时会发生什么。 它显示重build索引会更新该索引的统计信息,但是没有与索引相关联的任何“独立”统计信息都不会更新。

这两个都增加了对“是的,你需要手动更新统计”参数的支持。