Sql server 2008 SQL表统计信息,如何确定要更新哪些统计信息?

Sql server 2008 SQL表统计信息,如何确定要更新哪些统计信息?,sql-server-2008,Sql Server 2008,我有一些表,每天添加10万行。一些统计数据得到更新,但不是全部。似乎列出了50多个统计数据。1/2是几天前更新的,但有些是3个月前更新的。我应该更新这些吗?为什么不更新它们?只要“自动创建/自动更新”处于启用状态。。。那么SQL优化器不更新统计信息的原因很可能是因为它认为生成最佳查询计划是不必要的 这反过来可能是因为表的标准用法在查询(即where子句、比较、联接等)中不经常使用它们 您可以手动更新统计数据,但如果SQL不能使其保持最新,那么在您的正常活动过程中,您可能不会注意到任何改进。(只要

我有一些表,每天添加10万行。一些统计数据得到更新,但不是全部。似乎列出了50多个统计数据。1/2是几天前更新的,但有些是3个月前更新的。我应该更新这些吗?为什么不更新它们?

只要“自动创建/自动更新”处于启用状态。。。那么SQL优化器不更新统计信息的原因很可能是因为它认为生成最佳查询计划是不必要的

这反过来可能是因为表的标准用法在查询(即where子句、比较、联接等)中不经常使用它们

您可以手动更新统计数据,但如果SQL不能使其保持最新,那么在您的正常活动过程中,您可能不会注意到任何改进。(只要“自动更新”处于启用状态)

突然。。。如果您突然开始对一个历史上不常使用的列运行查询,那么优化器可能会改变主意,开始密切关注它

返回自动更新。。。如果它关闭了,那么你就进入了你自己的领域。此外,如果有人进入并手动创建了一组统计信息,那么这些统计信息也不会被SQL更新,除非它们在优化查询时变得有用


编辑了BOL文章的链接。在底部,它进入了最佳实践,并讨论了触发更新的因素。一些BOL的东西是如此,所以,我认为这篇文章非常好。