我有几个表,每天添加100k行。一些统计信息会更新,但不是全部更新。似乎列出了50+统计数据。1/2是几天前更新的,但也有一些是3个月前更新的。我应该更新这些吗?为什么不更新它们呢?
发布于 2011-06-18 06:45:48
只要启用了所有自动创建/自动更新...那么SQL优化器不更新统计数据的原因可能是它认为生成最佳查询计划是不必要的。
反过来,这可能是因为您的表的标准用法不经常在查询中利用它们(即where子句、比较、连接等)。
您可以手动更新统计信息,但是如果SQL没有使它们保持最新,那么在您的正常活动过程中,您可能会注意到没有任何改进。(只要自动更新处于打开状态)
在翻转时。如果您突然开始在一个历史上不经常使用的列上运行查询,那么优化器可能会改变主意,并开始密切关注它。
返回到自动更新...如果它关闭了,那么你就进入了自己的领域。此外,如果有人手动创建了一堆统计数据,那么SQL也不会更新这些统计数据,除非它们在优化查询时变得有用。
This Books Online article is an excellent source of information.
https://stackoverflow.com/questions/6392279
复制相似问题