繁体   English   中英

“创建统计信息”在SQL Server 2005中的作用是什么?

[英]What does “Create Statistics” do in SQL Server 2005?

Database Tuning Advisor建议我在我的数据库中创建一堆统计信息。 我是一个SQL n00b,所以这是我第一次遇到这样的生物。 MSDN中的条目有点迟钝 - 有人可以解释这究竟是什么,以及为什么这是一个好主意?

基于成本的查询优化是一种使用直方图和行计数来启发式地估计执行查询计划的成本的技术。 当您向SQL Server提交查询时,它会对其进行评估并生成一系列查询计划 ,并使用启发式方法来估算成本。 然后它选择最便宜的查询计划。

查询优化器使用统计信息来计算查询计划的成本。 如果统计数据丢失或过期,则没有正确的数据来估算计划。 在这种情况下,它可以生成适度或高度次优的查询计划。

SQL Server将(在大多数情况下)自动生成大多数表和索引的统计信息,但您可以补充这些或强制刷新。 查询调优向导可能在查询中发现了一些缺少的统计信息或已识别的联接,应该添加统计信息。

优化程序使用统计信息来确定是否为查询使用特定索引。 如果没有统计信息,优化器就无法知道有多少行与给定条件匹配,导致它必须针对“多行”情况进行优化,这可能不是最优的。

简而言之,它可以使您的数据库有效地工作。 通过准备好统计数据,您的数据库知道(在需要确定执行计划之前)可能是最有效的路由。

基本上只是让SQL更新你有什么类型的索引,行数等。这有助于SQL更好地估计如何执行您的查询。 保持统计更新是一件好事。

来自BOL ......

在提供的列或索引视图的列或列集上创建直方图和关联的密度组(集合)。 还在基于char,varchar,varchar(max),nchar,nvarchar,nvarchar(max),text和ntext列构建的统计信息上创建字符串摘要统计信息。 查询优化器使用此统计信息来选择最有效的检索或更新数据的计划。 最新统计信息允许优化器准确评估不同查询计划的成本,并选择高质量的计划。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM