在开始之前搭建演示环境:

USE master
GO
SET NOCOUNT ON --创建表结构
IF OBJECT_ID(N'ClassA', N'U') IS NOT NULL
DROP TABLE ClassA
CREATE TABLE ClassA(ID INT PRIMARY KEY, Name VARCHAR(16), CreateDate DATETIME)
CREATE INDEX IDX_CreateDate ON ClassA(CreateDate)
GO --插入测试数据
DECLARE @ID INT
SET @ID = 1
WHILE @ID <= 10000
BEGIN
INSERT INTO ClassA VALUES(@ID, 'fx', GETDATE())
SET @ID = @ID + 1
END

确保数据正确插入:

SELECT 'ClassA' AS ClassA, COUNT(1) AS Count FROM ClassA

更新统计数据确保信息最新:

UPDATE STATISTICS ClassA

紧接着展示统计数据:

DBCC SHOW_STATISTICS('ClassA', 'IDX_CreateDate')

统计数据包含三个部分:STAT_HEADER、DENSITY_VECTOR、HISTOGRAM

下表对指定 STAT_HEADER 时结果集中所返回的列进行了说明。

列名

说明

Name

统计信息对象的名称。

Updated

上一次更新统计信息的日期和时间。STATS_DATE 函数是另一种检索此信息的方法。

Rows

上次更新统计信息时表或索引视图中的总行数。如果筛选统计信息或者统计信息与筛选索引对应,该行数可能小于表中的行数。有关详细信息,请参阅使用统计信息提高查询性能

Rows Sampled

用于统计信息计算的抽样总行数。如果 Rows Sampled < Rows,显示的直方图和密度结果则是根据抽样行估计的。

Steps

直方图中的梯级数。每个梯级都跨越一个列值范围,后跟上限列值。直方图梯级是根据统计信息中的第一个键列定义的。最大梯级数为 200。

Density

计算公式为:1/统计信息对象第一个键列中的所有值(不包括直方图边界值)的非重复值。查询优化器不使用此 Density 值,显示此值的目的是为了与 SQL Server 2008 之前的版本实现向后兼容。

Average Key Length

统计信息对象中所有键列的每个值的平均字节数。

String Index

Yes 指示统计信息对象包含字符串摘要统计信息,以改进对使用 LIKE 运算符的查询谓词的基数估计;例如 WHERE ProductName LIKE '%Bike'。字符串摘要统计信息与直方图分开存储,如果统计信息对象为charvarcharncharnvarcharvarchar(max)nvarchar(max)textntext. 类型,则基于其第一个键列创建字符串摘要统计信息。

Filter Expression

包含在统计信息对象中的表行子集的谓词。NULL = 未筛选的统计信息。有关筛选的谓词的详细信息,请参阅筛选索引设计准则。有关更筛选的统计信息的详细信息,请参阅使用统计信息提高查询性能

Unfiltered Rows

应用筛选表达式前表中的总行数。如果筛选表达式为 NULL,则 Unfiltered Rows 等于 Rows。

下表对指定 DENSITY_VECTOR 时结果集中所返回的列进行了说明。

列名

说明

All Density

Density 为 1/非重复值。结果显示统计信息对象中各列的每个前缀的密度,每个密度显示一行。非重复值是每个行前缀和列前缀的列值的非重复列表。例如,如果统计信息对象包含键列 (A, B, C),结果将报告以下每个列前缀中非重复值列表的密度:(A)、(A,B) 以及 (A, B, C)。使用前缀 (A, B, C),以下每个列表都是一个非重复值列表:(3, 5, 6)、(4, 4, 6)、(4, 5, 6) 和 (4, 5, 7)。使用前缀 (A, B),相同列值则具有以下非重复值列表:(3, 5)、(4, 4) 和 (4, 5)。

Average Length

存储列前缀的列值列表的平均长度(以字节为单位)。例如,如果列表 (3, 5, 6) 中的每个值都需要 4 个字节,则长度为 12 个字节。

Columns

为其显示 All density 和 Average length 的前缀中的列的名称。

下表对指定 HISTOGRAM 选项时结果集中所返回的列进行了说明。

列名

说明

RANGE_HI_KEY

直方图梯级的上限列值。列值也称为键值。

RANGE_ROWS

其列值位于直方图梯级内(不包括上限)的行的估算数目。

EQ_ROWS

其列值等于直方图梯级的上限的行的估算数目。

DISTINCT_RANGE_ROWS

非重复列值位于直方图梯级内(不包括上限)的行的估算数目。

AVG_RANGE_ROWS

重复列值位于直方图梯级内(不包括上限)的平均行数(如果 DISTINCT_RANGE_ROWS > 0,则为 RANGE_ROWS / DISTINCT_RANGE_ROWS)。

参考文献:DBCC SHOW_STATISTICS

最新文章

  1. 频率直方图(hist)
  2. 60行JavaScript俄罗斯方块
  3. mark元素
  4. 边工作边刷题:70天一遍leetcode: day 75-1
  5. [名词解释]Constant Amortized Time
  6. linux_x86_64 blat安装
  7. c程序设计语言_习题1-13_统计输入中单词的长度,并且根据不同长度出现的次数绘制相应的直方图
  8. Fixing ssh login long delay
  9. Struts2(三)——数据在框架中的数据流转问题
  10. mac 上配置sublime text3插件
  11. 五大科技巨头VR/AR专利报告,Magic Leap以22.6%领跑
  12. SpringMVC学习笔记(二)
  13. [转]Python爬虫框架--pyspider初体验
  14. 闲聊js中的apply、call和arguments
  15. java连接3种数据库 JdbcLinkDB --201801
  16. PHP算法之二分查找
  17. hashCode 与 equals
  18. JDK设计模式之——工厂模式
  19. HGOI 20190310 题解
  20. sql: Query to Display Foreign Key Relationships and Name of the Constraint for Each Table in Database

热门文章

  1. 关于java -version版本问题
  2. mysql 插入汉字 异常 Incorrect string value: &#39;\xE8\xA7\x84\xE5\x88\x99&#39; for column &#39;name&#39;
  3. Java泛型 通配符? extends与super
  4. POJ 3185 The Water Bowls(高斯消元-枚举变元个数)
  5. python写的第一个简单小游戏-猜数字
  6. UVa 12661 (单源最短路) Funny Car Racing
  7. 五大主流SQL数据库
  8. ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking
  9. C++实现String
  10. LeetCode: divideInteger