使用DBCC SHOW_STATISTICS展示索引的统计信息
在开始之前搭建演示环境:
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'。字符串摘要统计信息与直方图分开存储,如果统计信息对象为char、varchar、nchar、nvarchar、varchar(max)、nvarchar(max)、text 或 ntext. 类型,则基于其第一个键列创建字符串摘要统计信息。 |
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展示索引的统计信息的更多相关文章
- SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇)
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第三篇) 最近真的没有什么精力写文章,天天加班,为了完成这个系列,硬着头皮上了 再看这篇文章之前请大家先看我之前写的第一篇和第二篇 第一篇: ...
- Sybase数据库收集表及其索引的统计信息
更新表及其索引的统计信息: update table statistics 表名 go update index statistics 表名 go 建议此操作在闲时操作.
- Druid是什么和用StatViewServlet用于展示Druid的统计信息
Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系. DruidDataSource 高效可管理的数据库连接池 ...
- SQLServer索引及统计信息
索引除了提高性能,还能维护数据库. 索引是一种存储结构,主要以B-Tree形式存储信息. B-Tree的定义: 1.每个节点最多只有m个节点(m>=2) 2.除了根节点和叶子节点外的每个节点上最 ...
- SQL SERVER 统计信息概述(Statistics)
前言 查询优化器使用统计信息来创建可提高查询性能的查询计划,对于大多数查询,查询优化器已经为高质量查询计划生成必要的统计信息,但是在少数情况下,您需要创建附加的统计信息或者修改查询设计以得到最佳结果. ...
- SQL语句调优 - 统计信息的含义与作用及维护计算
统计信息的含义与作用 ...
- sql server 索引阐述系列八 统计信息
一.概述 sql server在快速查询值时只有索引还不够,还需要知道操作要处理的数据量有多少,从而估算出复杂度,选择一个代价小的执行计划,这样sql server就知道了数据的分布情况.索引的统计值 ...
- sql server重建全库索引和更新全库统计信息通用脚本
重建全库索引: exec sp_msforeachtable 'DBCC DBREINDEX(''?'')' 更新全库统计信息: --更新全部统计信息 exec sp_updatestats 实例反馈 ...
- SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)
本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. ...
随机推荐
- Android ListView高度自适应和ScrollView冲突解决
在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查,S ...
- gsp序列模式挖掘
数据挖掘进阶之序列模式挖掘GSP算法 绪 继续数据挖掘方面算法的讲解,前面讲解了数据挖掘中关联规则算法FP-Growth的实现.此篇博文主要讲解基于有趣性度量标准的GSP序列模式挖掘算法.有关论文后期 ...
- C结构体之位域(位段)
C结构体之位域(位段) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C ...
- bzoj2792
首先想到二分答案是吧,设为lim 这道题难在判定,我们先不管将一个数变为0的条件 先使序列满足相邻差<=lim,这个正着扫一遍反着扫一遍即可 然后我们就要处理将一个数变为0的修改代价 当i变为0 ...
- HDU 1686 (KMP模式串出现的次数) Oulipo
题意: 求模式串W在母串T中出现的次数,各个匹配串中允许有重叠的部分. 分析: 一开始想不清楚当一次匹配完成时该怎么办,我还SB地让i回溯到某个位置上去. 后来仔细想想,完全不用,直接让模式串向前滑动 ...
- asp.net获取当前页面源码并生成静态页面
StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(strin ...
- 最受Web前端开发者欢迎的五大开发工具
工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...
- poj 1330 Nearest Common Ancestors(LCA:最近公共祖先)
多校第七场考了一道lca,那么就挑一道水题学习一下吧= = 最简单暴力的方法:建好树后,输入询问的点u,v,先把u全部的祖先标记掉,然后沿着v->rt(根)的顺序检查,第一个被u标记的点即为u, ...
- python - 沙盒环境 - virtualenv - 简明使用录
1. 不讲安装,没意思 2. 使用 virtualenv ENV # 建立环境,ENV你可以随便定,看起来像是 mkdir ENV cd ENV # 进目录呗 source bin/activate ...
- RTP协议学习大总结从原理到代码
from:http://wenku.baidu.com/view/aaad3d136edb6f1aff001fa5.html 一.流媒体概念 流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和 ...