2022年SQLServer索引基础知识----聚集索引,非聚集索引 .pdf
《2022年SQLServer索引基础知识----聚集索引,非聚集索引 .pdf》由会员分享,可在线阅读,更多相关《2022年SQLServer索引基础知识----聚集索引,非聚集索引 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、不论是 聚集索引,还是非聚集索引, 都是用 B+树来实现的。 我们在了解这两种索引之前,需要先了解B+树。如果你对 B 树不了解的话,建议参看以下几篇文章:BTree,B-Tree,B+Tree,B*Tree都是什么http:/ 树的结构图 :B+ 树的特点 : 所有关键字都出现在叶子结点的链表中(稠密索引) ,且链表中的关键字恰好是有序的;不可能在非叶子结点命中;非叶子结点相当于是叶子结点的索引(稀疏索引) ,叶子结点相当于是存储(关键字)数据的数据层;B+ 树中增加一个数据,或者删除一个数据,需要分多种情况处理,比较复杂,这里就不详述这个内容了。聚集索引( Clustered Index)
2、聚集索引的叶节点就是实际的数据页在数据页中数据按照索引顺序存储行的物理位置和行在索引中的位置是相同的每个表只能有一个聚集索引聚集索引的平均大小大约为表大小的5%左右名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 下面是两副简单描述聚集索引的示意图:在聚集索引中执行下面语句的的过程:select * from tablewhere firstName = Ota 一个比较抽象点的聚集索引图示:名师资料总结 - - -精品资料欢迎下
3、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 非聚集索引(Unclustered Index)非聚集索引的页,不是数据,而是指向数据页的页。若未指定索引类型,则默认为非聚集索引叶节点页的次序和表的物理存储次序不同每个表最多可以有249 个非聚集索引在非聚集索引创建之前创建聚集索引(否则会引发索引重建)在非聚集索引中执行下面语句的的过程:select * from employee where lname = Green 名师资料总结 - - -精品资料欢迎下载 -
4、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 一个比较抽象点的非聚集索引图示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 什么是 Bookmark Lookup虽然 SQL 2005 中已经不在提Bookmark Lookup 了(换汤不换药 ),但是我们的很多搜索都是用的这样的搜索过程,如下:先在非
5、聚集中找,然后再在聚集索引中找。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 在 http:/www. Lookup 比 Table Scan 慢的情况,例子的脚本如下:USE CREDIT go- These samples use the Credit database. You can download and restore the- credit database from here:- http:/www.sql
6、NOTE: This is a SQL Server 2000 backup and MANY examples will work on - SQL Server 2000 in addition to SQL Server 2005.- (1) Create two tables which are copies of charge:-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - - Create the HEAPSELE
7、CT * INTO ChargeHeap FROM Charge go- Create the CL TableSELECT * INTO ChargeCL FROM Charge goCREATE CLUSTERED INDEX ChargeCL_CLInd ON ChargeCL (member_no, charge_no) go- (2) Add the same non-clustered indexes to BOTH of these tables:- Create the NC index on the HEAPCREATE INDEX ChargeHeap_NCInd ON C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年SQLServer索引基础知识-聚集索引 非聚集索引 2022 SQLServer 索引 基础知识 聚集
限制150内