sql server 索引基础知识----聚集索引,非聚集索引

sql server 索引基础知识----聚集索引,非聚集索引

ID:15340878

大小:240.00 KB

页数:9页

时间:2018-08-02

sql server 索引基础知识----聚集索引,非聚集索引_第1页
sql server 索引基础知识----聚集索引,非聚集索引_第2页
sql server 索引基础知识----聚集索引,非聚集索引_第3页
sql server 索引基础知识----聚集索引,非聚集索引_第4页
sql server 索引基础知识----聚集索引,非聚集索引_第5页
资源描述:

《sql server 索引基础知识----聚集索引,非聚集索引》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、不论是聚集索引,还是非聚集索引,都是用B+树来实现的。我们在了解这两种索引之前,需要先了解B+树。如果你对B树不了解的话,建议参看以下几篇文章:BTree,B-Tree,B+Tree,BTree都是什么http://blog.csdn.net/manesking/archive/2007/02/09/1505979.aspxB+树的结构图:B+树的特点:·所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;·不可能在非叶子结点命中;·非叶子结点相当于是叶子结点的索引(稀

2、疏索引),叶子结点相当于是存储(关键字)数据的数据层;B+树中增加一个数据,或者删除一个数据,需要分多种情况处理,比较复杂,这里就不详述这个内容了。 聚集索引(ClusteredIndex)·聚集索引的叶节点就是实际的数据页·在数据页中数据按照索引顺序存储·行的物理位置和行在索引中的位置是相同的·每个表只能有一个聚集索引·聚集索引的平均大小大约为表大小的5%左右下面是两副简单描述聚集索引的示意图: 在聚集索引中执行下面语句的的过程:selectfromtablewherefirstName='O

3、ta' 一个比较抽象点的聚集索引图示: 非聚集索引(UnclusteredIndex)  ·非聚集索引的页,不是数据,而是指向数据页的页。·若未指定索引类型,则默认为非聚集索引·叶节点页的次序和表的物理存储次序不同·每个表最多可以有249个非聚集索引·在非聚集索引创建之前创建聚集索引(否则会引发索引重建)在非聚集索引中执行下面语句的的过程:selectfromemployeewherelname='Green'一个比较抽象点的非聚集索引图示: 什么是BookmarkLookup虽然SQL2005

4、中已经不在提 BookmarkLookup了(换汤不换药),但是我们的很多搜索都是用的这样的搜索过程,如下:先在非聚集中找,然后再在聚集索引中找。 在http://www.sqlskills.com/提供的一个例子中,就给我们演示了BookmarkLookup 比TableScan慢的情况,例子的脚本如下:USECREDITgo--ThesesamplesusetheCreditdatabase.Youcandownloadandrestorethe--creditdatabasefromher

5、e:--http://www.sqlskills.com/resources/conferences/CreditBackup80.zip--NOTE:ThisisaSQLServer2000backupandMANYexampleswillworkon--SQLServer2000inadditiontoSQLServer2005.---------------------------------------------------------------------------------(

6、1)Createtwotableswhicharecopiesofcharge:---------------------------------------------------------------------------------CreatetheHEAPSELECTINTOChargeHeapFROMChargego--CreatetheCLTableSELECTINTOChargeCLFROMChargegoCREATECLUSTEREDINDEXChargeCL_CLIndON

7、ChargeCL(member_no,charge_no)go---------------------------------------------------------------------------------(2)Addthesamenon-clusteredindexestoBOTHofthesetables:---------------------------------------------------------------------------------Crea

8、tetheNCindexontheHEAPCREATEINDEXChargeHeap_NCIndONChargeHeap(Charge_no)go--CreatetheNCindexontheCLTableCREATEINDEXChargeCL_NCIndONChargeCL(Charge_no)go---------------------------------------------------------------------------------(3)Begintoquerythe

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

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

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