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的主要内容,如果未能解决你的问题,请参考以下文章

了解 SQL Server 2008 R2 中的索引视图更新和查询过程

自动将 CSV 导入 SQL Server 2008 R2

利用SQL Server 2008 R2创建自动备份计划

虚拟机中安装SQL server 2008 R2

SQL Server 2008R2创建自动备份计划

SQL Server 2008 R2:将过去的日期更新为“下一个”日期