SQL Server 2008 R2 中的自动更新统计信息和 FULLSCAN
Posted
技术标签:
【中文标题】SQL Server 2008 R2 中的自动更新统计信息和 FULLSCAN【英文标题】:Auto Update Statistics and FULLSCAN in SQL Server 2008 R2 【发布时间】:2011-10-20 11:34:41 【问题描述】:当 SQL Server 2008 R2自动更新统计信息时,是否可以强制 FULLSCAN
?
如果没有,计划中的UPDATE STATISTICS WITH FULLSCAN
是保持统计数据最新的最佳方式吗?
注意:对FULLSCAN
的需求来自于使用非FULLSCAN
统计数据时经过证明的次优计划生成。
【问题讨论】:
告诉我们更多关于次优计划的信息。也许也可以与我们分享实际的查询和架构。 我真的不明白这与实际问题有什么关系......无论如何,考虑到次优计划使用了两次聚集索引扫描,而在最佳计划中它们不存在(替换通过寻找相同的索引)。仅供参考,这两个索引分别是具有 280M+ 和 55M+ 行的表的 PK。 它是相关索引扫描是不良索引或不良谓词最有可能不是统计数据 @gbn 如果您的理论可以解释为什么,在手动更新统计信息并使所有执行计划无效后,平均查询持续时间立即下降到我们看到的平均持续时间的 1/100,那么我实际上可以考虑约翰的请求(但我仍然无法分享查询和方案,因为它们是专有的) @gbn 这就是我周五所做的,因为似乎没有人在 SO 或 DBA 上有正确的答案。不幸的是,他的回答是他不知道在自动统计中强制FULLSCAN
。我们可能不得不每天多次启动计划中的UPDATE STATISTICS
,至少在变化最大的表上是这样。
【参考方案1】:
最后,这似乎是不可能的(有关详细信息,请参阅我对问题的最后评论)。
【讨论】:
以上是关于SQL Server 2008 R2 中的自动更新统计信息和 FULLSCAN的主要内容,如果未能解决你的问题,请参考以下文章