当前位置:首页 > 系统运维 > 正文内容

对SQL Server索引的统计概述

a8116255316年前 (2010-07-07)系统运维10

以下的文章主要是向大家讲述的是SQL Server索引的统计(Index statistics),正如前文我们所提到的,键的选择性是决定当执行一个查询时是否使用索引的重要因素。SQL Server在系统表sysindexs的statblob字段中存储了键的选择性和样本直方图的值。

查询优化器正是基于索引键对应于该列中的值和查询中的SARG,来决定使用哪个索引。

Statblob列是一个image类型列,为了看到存储在该列中的统计信息,可使用DBCC SHOW_STATISTICS命令,该命令返回下列信息:

一个直方图。它包含了SQL Server索引键的之一列的偶数个样本值。SQL Server在直方图中至多存储200个样本值。

索引中的组合列的索引密度。索引密度表明了SQL Server索引键的唯一性,本节随后将讨论。

计算统计信息时表中行数。

用于抽样生成统计信息的行数。

直方图中存储的样本值的个数。

键的平均长度值。

统计计算的日期和时间。

DBCC SHOW_STATISTICS语法如下:

DBCC SHOW_STATISTICS (tablename, index)

Listing 34.1显示了authors表中的在au_lname和au_fname列的aunmind非聚集SQL Server索引的统计信息。

Sql代码   Dbcc show_statistics (authors, aunmind)   go   Dbcc show_statistics (authors, aunmind)  Go  Statistics for INDEX 'aunmind'.   Updated Rows Rows Sampled Steps Density Average key length   Aug 6 2001 1:34AM 23 23 22 0.0 24.52174   All density Average Length Columns   4.5454547E-2 7.3913045 au_lname   4.3478262E-2 13.52174 au_lname, au_fname   4.3478262E-2 24.52174 au_lname, au_fname, au_id   (3 row(s) affected)   RANGE_HI_KEY RANGE_ROWS EQ_ROWS DISTINCT_RANGE_ROWS AVG_RANGE_ROWS   Bennet 0.0 1.0 0 0.0   Blotchet-Halls 0.0 1.0 0 0.0   Carson 0.0 1.0 0 0.0   DeFrance 0.0 1.0 0 0.0   del Castillo 0.0 1.0 0 0.0   Dull 0.0 1.0 0 0.0   Green 0.0 1.0 0 0.0   Greene 0.0 1.0 0 0.0   Gringle *** y 0.0 1.0 0 0.0   Hunter 0.0 1.0 0 0.0   Karsen 0.0 1.0 0 0.0   Locksley 0.0 1.0 0 0.0   MacFeather 0.0 1.0 0 0.0   McBadden 0.0 1.0 0 0.0   O'Leary 0.0 1.0 0 0.0   Panteley 0.0 1.0 0 0.0   Ringer 0.0 2.0 0 0.0   Smith 0.0 1.0 0 0.0   StrAIght 0.0 1.0 0 0.0   Stringer 0.0 1.0 0 0.0   White 0.0 1.0 0 0.0   Yokomoto 0.0 1.0 0 0.0   

分析上面的输出,你能推算出统计最后的修改时间是2001年8月6日。当生成计信息时该表共有23行(Rows),所有23行都用来抽样生成统计信息(Rows Sampled)。键值的平均长度为24.52174字节(Average Key Length)。根据密度信息(Density),你能看到该SQL Server索引具有高选择性(低密度意味着高选择性——索引密度后面将涉及到)。表中23行数据,其中22行具有唯一值。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21561.html

分享给朋友:

“对SQL Server索引的统计概述” 的相关文章

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

windows 7鼠标停顿怎么办?windows 7 usb鼠标停顿的原因以及解决

很多使用Windows 7系统的朋友都想小编反应,假如暂停使用电脑,鼠标会出现停顿现象,这是怎么回事呢 该怎么解决呢 下面就和小编一起去看下Windows 7 usb鼠标停顿的解决方法吧。 由于Windows 7系统中有一项USB选择性暂停造成的。这项设置主要为了节电,当他检测到用户没有对系统进行...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

Windows7截图出现黑屏导致截的图黑呼呼一片

Windows7截图出现黑屏导致截的图黑呼呼一片

最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

windows 7系统开机提示Windows驱动器未就绪的故障原因及解决方法

 故障分析: 主要原因应该是不存在软盘驱动器或驱动器未安装,找到故障原因后,Windows 7 32位系统只要将软盘驱动器禁用就可以了。 解决措施: 1、右键点击计算机,选择管理,打开计算机管理窗口; 2、在计算机管理中,找到设备管理器,在右边的软盘控制器中右击,选择卸载即可。 以...

Ubuntu 14.04安装Wine以便使用Windows应用

Ubuntu 14.04安装Wine以便使用Windows应用

假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...