sp_updatestats
有什么用?我可以在生产环境中运行它以提高性能吗?
答案 0 :(得分:34)
sp_updatestats
更新数据库中所有表的所有统计信息,即使单行也发生了更改。它使用默认样本执行此操作,这意味着它不会扫描表中的所有行,因此它可能会生成比备选项更不准确的统计信息。
如果您的维护计划包含'重建索引'包括,它还将刷新统计信息,但更准确,因为它扫描所有行。重建索引后无需重建统计信息。
使用update statistics
命令手动更新特定统计信息对象或表可让您更好地控制该过程。要自动化,请查看here。
仅在优化程序决定必须时才会触发自动更新。 2012年的数学发生了变化:在< 2012中,表格行每变化500 + 20%就触发了自动更新;在2012年以上它是SQRT(1000 *表行)。这意味着它在大型桌子上更频繁。当然,临时表的表现不同。
总而言之,sp_updatestats
实际上可能造成的伤害大于好,并且是最不值得推荐的选择。