详解sql server数据库索引--

详解sql server数据库索引--

ID:21225804

大小:54.00 KB

页数:3页

时间:2018-10-20

详解sql server数据库索引--_第1页
详解sql server数据库索引--_第2页
详解sql server数据库索引--_第3页
资源描述:

《详解sql server数据库索引--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、详解SQLServer数据库索引>>  一、理解索引的结构  索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。微软的SQLSERVER提供了两种索引:聚集索引(clusteredindex,也称聚类索引、簇集索引)和非聚集索引(nonclusteredindex,也称非聚类索引、非簇集索引)。  SQLServer中数据存储的基本单位是页(Page)。数据库中的数据文件(.mdf或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到n连续编号)。磁

2、盘I/O操作在页级执行。也就是说,SQLServer每次读取或写入数据的最少数据单位是数据页。  下面我们先简单的了解一下索引的体系结构:  1.聚集索引结构  在SQLServer中,索引是按B树结构进行组织的。  聚集索引单个分区中的结构:  --建立UserAddDate聚集索引  CREATECLUSTEREDINDEX[IX_UserAddDate]ON[ASPNet_zSurvey].[ZS_User]  (  [UserAddDate]ASC  )  聚集索引(ClusteredIndex)特点  聚集索引的叶节点

3、就是实际的数据页  聚集索引中的排序顺序仅仅表示数据页链在逻辑上是有序的。而不是按照顺序物理的存储在磁盘上  行的物理位置和行在索引中的位置是相同的  每个表只能有一个聚集索引  聚集索引的平均大小大约为表大小的5%左右  2.非聚集索引结构  非聚集索引与聚集索引具有相同的B树结构,它们之间的显著差别在于以下两点:  1.基础表的数据行不按非聚集键的顺序排序和存储。  2.非聚集索引的叶层是由索引页而不是由数据页组成。  下图示意了单个分区中的非聚集索引结构:  包含列的索引  通过将包含列(称为非键列)添加到索引的叶级,可以

4、扩展非聚集索引的功能。键列存储在非聚集索引的所有级别,而非键列仅存储在叶级别。  下面举个简单的例子来说明一下聚集索引和非聚集索引的区别:  我们有一本汉语字典,可以把它的正文本身看做是一个聚集索引,它是按照汉字拼音的开头字母排序的,不再需要查找其他目录。当遇到不认识的字时,需要结合部首目录和检字表,先找到目录中的结果,然后再翻到您所需要的页码。通过这种方法查到的目录中字的排序并不是真正的正文的排序方法。把这种看做是一个非聚集索引。  另外,请注意每个表只能有一个聚集索引。  --建立UserAddDate非聚集索引  CREA

5、TENONCLUSTEREDINDEX[IX_UserAddDate]ON[ASPNet_zSurvey].[ZS_User]  (  [UserAddDate]ASC  )  非聚集索引(UnclusteredIndex)特点  非聚集索引的页,不是数据,而是指向数据页的页。  若未指定索引类型,则默认为非聚集索引  叶节点页的次序和表的物理存储次序不同  每个表最多可以有249个非聚集索引  在非聚集索引创建之前创建聚集索引(否则会引发索引重建)  二、选择建立哪种索引  1.何时创建聚集索引更能提高性能  Clustere

6、dIndex会提高大多数table的性能,尤其是当它满足以下条件时:  独特,狭窄,持续增长的,最好是只向上增加。例如:  •Identity  •Date,identity  •GUID(onlyns都包括在index上时,我们说这个indexcoversthequery.Columns的顺序在此不重要(Select时候的顺序不重要,但是Index建立的顺序可得小心了)。  在SQLServer2005中,为了提高这种Covering带来的好处,甚至可以通过将非键列添加到非聚集索引的叶级别来扩展非

7、聚集索引的功能。  补充:只有查询在具有高度选择性的情况下,非聚集索引才有优势。  三、使用聚集索引或非聚集索引的场景(注:优先级依次为推荐,应,不应)  四、主键和聚集索引的比较12下一页>>>>这篇文章来自..,。  以下是一些大众点评网中测试使用的示例:CHECKPOINTDBCCDROPCLEANBUFFERSSETSTATISTICSIOONdeclareddatetimesetd=getdate()SELECT*FROMASPNet_zSurvey.ZS_UserASPNet_zSurvey.ZS_Users,d,g

8、etdate())--(45077行受影响)--表'ZS_User'。扫描计数1,逻辑读取45165次,物理读取133次,预读141次,lob逻辑读取0次,lob物理读取0次,lob预读0次。--3860  五、使用索引的代价  索引需要占用数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。