exec sp_updatestats做什么?

时间:2014-05-03 05:45:55

标签: sql sql-server database-performance

sp_updatestats有什么用?我可以在生产环境中运行它以提高性能吗?

1 个答案:

答案 0 :(得分:34)

sp_updatestats更新数据库中所有表的所有统计信息,即使单行也发生了更改。它使用默认样本执行此操作,这意味着它不会扫描表中的所有行,因此它可能会生成比备选项更不准确的统计信息。

如果您的维护计划包含'重建索引'包括,它还将刷新统计信息,但更准确,因为它扫描所有行。重建索引后无需重建统计信息。

使用update statistics命令手动更新特定统计信息对象或表可让您更好地控制该过程。要自动化,请查看here

仅在优化程序决定必须时才会触发自动更新。 2012年的数学发生了变化:在< 2012中,表格行每变化500 + 20%就触发了自动更新;在2012年以上它是SQRT(1000 *表行)。这意味着它在大型桌子上更频繁。当然,临时表的表现不同。

总而言之,sp_updatestats实际上可能造成的伤害大于好,并且是最不值得推荐的选择。

相关问题