日期:2014-05-16  浏览次数:20419 次

使用索引统计信息(Index Statistics)优化查询语句,提高查询效率
如果你查询优化统计还没有太多的认识和了解,那么建议你从头开始看,如果你已经很了解,那么可以直接跳到下面去看本文的重点了。

什么是查询优化统计信息?
查询优化的统计信息是一些对象,这些对象包含与值在表或索引视图的一列或多列中的分布有关的统计信息。查询优化器使用这些统计信息来估计查询结果中的基数或行数。通过这些基数估计,查询优化器可以创建高质量的查询计划。例如,查询优化器可以使用基数估计选择索引查找运算符而不是耗费更多资源的索引扫描运算符,从而提高查询性能。
每个统计信息对象都在包含一个或多个表列的列表上创建,并且包括显示值在第一列中的分布的直方图。在多列上的统计信息对象也存储与各列中的值的相关性有关的统计信息。这些相关性统计信息(或密度)根据列值的不同行的数目派生。
使用数据库范围的统计信息选项
自动创建统计信息选项 AUTO_CREATE_STATISTICS 和自动更新统计信息选项 AUTO_UPDATE_STATISTICS 默认为 ON,我们建议使用这一默认值来用于大多数用户数据库。您可以使用以下 SELECT 语句来为所有用户数据库查看这些选项的当前值:
SELECT	name AS "Name", 
		is_auto_create_stats_on AS "Auto Create Stats",
		is_auto_update_stats_on AS "Auto Update Stats",
		is_read_only AS "Read Only" 
FROM sys.databases
WHERE database_ID > 4;
查看统计统计信息
DBCC SHOW_STATISTICS 显示表或索引视图的当前查询优化统计信息。语法结构参考DBCC SHOW_STATISTICS,这里不做过多阐述。
确定何时创建统计信息