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

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

使用DBCC SHOW_STATISTICS展示索引的统计信息的更多相关文章

  1. SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇)

    SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了 再看这篇文章之前请大家先看我之前写的第一篇和第二篇 第一篇: ...

  2. Sybase数据库收集表及其索引的统计信息

    更新表及其索引的统计信息: update table statistics 表名 go update index statistics 表名 go 建议此操作在闲时操作.

  3. Druid是什么和用StatViewServlet用于展示Druid的统计信息

    Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系.  DruidDataSource 高效可管理的数据库连接池 ...

  4. SQLServer索引及统计信息

    索引除了提高性能,还能维护数据库. 索引是一种存储结构,主要以B-Tree形式存储信息. B-Tree的定义: 1.每个节点最多只有m个节点(m>=2) 2.除了根节点和叶子节点外的每个节点上最 ...

  5. SQL SERVER 统计信息概述(Statistics)

    前言 查询优化器使用统计信息来创建可提高查询性能的查询计划,对于大多数查询,查询优化器已经为高质量查询计划生成必要的统计信息,但是在少数情况下,您需要创建附加的统计信息或者修改查询设计以得到最佳结果. ...

  6. SQL语句调优 - 统计信息的含义与作用及维护计算

    统计信息的含义与作用                                                                                          ...

  7. sql server 索引阐述系列八 统计信息

    一.概述 sql server在快速查询值时只有索引还不够,还需要知道操作要处理的数据量有多少,从而估算出复杂度,选择一个代价小的执行计划,这样sql server就知道了数据的分布情况.索引的统计值 ...

  8. sql server重建全库索引和更新全库统计信息通用脚本

    重建全库索引: exec sp_msforeachtable 'DBCC DBREINDEX(''?'')' 更新全库统计信息: --更新全部统计信息 exec sp_updatestats 实例反馈 ...

  9. SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

    本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. ...

随机推荐

  1. Jquery的.post说解

    Jquery的.post说解(一) 准备工作 ·Customer类   public class Customer {     public int Unid { get; set; }     pu ...

  2. 解决 “无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持”

    http://blog.csdn.net/davidhsing/article/details/8762621 无法安装Microsoft visual studio 2010 service pac ...

  3. Codeforces 383A - Milking cows

    原题地址:http://codeforces.com/problemset/problem/383/A 题目大意:有 n 头奶牛,全部看着左边或者右边,现在开始给奶牛挤奶,给一头奶牛挤奶时,所有能看到 ...

  4. UVa 11762 (期望 DP) Race to 1

    设f(x)表示x转移到1需要的次数的期望,p(x)为不超过x的素数的个数,其中能整除x的有g(x)个 则有(1-g(x)/p(x))的概率下一步还是转移到x,剩下的情况各有1/p(x)的概率转移到x/ ...

  5. ADO和DAO的区别

    ADO(ACTIVEX DATA OBJECTS)应用层的数据访问接口ODBC 数据库驱动接口OLE DB 系统级数据访问接口DAO (DATA ACCESS OBJECTS) 对象的数据访问接口AD ...

  6. EF 更新指定的字段

    假如你有个表,有30个字段,你只想更新其中的1到2个字段的话,就可以用得上这篇文章 作用:类似于我们以前的sql代码 update xxx表 set name='ok',pwd='ok' where ...

  7. poj 1364 King(差分约束)

    题意(真坑):傻国王只会求和,以及比较大小.阴谋家们想推翻他,于是想坑他,上交了一串长度为n的序列a[1],a[2]...a[n],国王作出m条形如(a[si]+a[si+1]+...+a[si+ni ...

  8. 省常中模拟 Test4

    prime 数论 题意:分别求 1*n.2*n.3*n.... n*n 关于模 p 的逆元.p 是质数,n < p. 初步解法:暴力枚举.因为 a 关于模 p 的逆元 b 满足 ab mod p ...

  9. c& c++ enum

    1.为什么要用enum       写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等.   ...

  10. 专题:Windows编译x264、SDL、faac、ffmpeg过程

    Windows上编译ffmpeg完整过程,包括编译x264.SDL.faac.在Windows上编译ffmpeg需要用MinGW+msys,本专题用于记录编译过程中遇到的各种问题及解决方法,转载请注明 ...