DTA建议创建统计信息


10

我只是通过DTA运行了一个T-SQL查询,建议之一是在属于SQL代码文件中许多查询一部分的列之一上创建统计信息。

我的问题是,统计数据对绩效有何帮助?

Answers:


7

创建查询执行计划时使用统计信息。

用于查询优化的统计信息是包含有关表或索引视图的一个或多个列中值分布的统计信息的对象。查询优化器使用这些统计信息来估计查询结果中的基数或行数。这些基数估计使查询优化器可以创建高质量的查询计划。例如,查询优化器可以使用基数估计来选择索引查找运算符,而不是消耗更多资源的索引扫描运算符,从而提高查询性能。

有关更多详细信息,请参见http://msdn.microsoft.com/zh-cn/library/ms190397.aspx


1
很棒的链接和描述。在经常查询的表上创建统计信息是否总是有益的?
托马斯·斯特林格

是的,我们必须确保大多数可读表的统计信息始终足够。如果您的表是写密集型表,则可能需要例如每天晚上更新统计信息。
2011年

2
@ Surfer513-注意:创建统计信息可能会产生不利影响。您为计划者提供的更好的信息可能会使其选择不同的执行路径,并且由于这是一种概率游戏,因此该路径可能会变慢(即使一般而言可能会更快)。换句话说,在生产数据库上,在实施之前进行测试。
杰克说,请尝试topanswers.xyz 2011年

7

如果DTA建议使用单列统计信息,则必须关闭自动创建统计信息吗?自动创建将自动在谓词中使用的任何列上建立统计信息,因此通常最好将其保持打开状态。检查此数据库的自动更新状态,该状态通常应再次打开。

DTA的最佳用途之一是识别丢失的多列统计信息,这些统计信息不会自动创建。但是对于单列,自动创建应该为您解决这些问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.