我有一个 SQL 2005 数据库,上面有一些由其他人设置的维护计划。其中一个计划在清晨对所有数据库运行更新统计信息。这似乎导致 tempdb 填满,从而破坏了当时正在运行的一些其他维护任务。它至少有一个星期没有成功运行。但是,我已将自动更新统计信息设置为 true,那么我是否真的需要每天早上运行更新统计信息?还有其他维护计划,包括夜间重新索引作业,我不知道这样做是否需要更新统计信息。
谢谢,
答案1
尽管更新统计信息使用了 tempdb(点击此处查看 Linchi 博客的更多信息) 不应该真正吹掉它,除非它被设置得非常小。
尽管您已打开自动更新统计功能,但仍建议定期更新所有查询的统计信息,以使用反映最新数据分布的最新统计信息。
回答你的问题是的你可以关闭这项工作,但你可能希望考虑将更新统计信息工作合并到你的常规维护计划中,在其中用以下代码替换显式的“更新统计信息”“sp_updatestats”它只会更新那些需要它的表的统计数据。
此外,作为最佳实践,您可能希望考虑仅重新组织碎片率低于 30% 的索引,并仅重建碎片率超过 30% 的索引。更多信息可在此处页面底部的 D 部分中找到http://msdn.microsoft.com/en-us/library/ms188917.aspx
希望这可以帮助。
答案2
可以禁用“更新统计信息”设置 - 我不知道为什么您要为此单独执行维护任务 - 请记住,如果您想更新任何内容的查询计划,则需要运行“更新统计信息”。
如果您重建索引(如果索引没有碎片,也不需要每天都重建),则统计信息会自动更新。