- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
索引在各种关系型数据库系统中都是举足轻重的组成部分,其对于提高检索数据的速度起至 关重要的作用。在Oracle 中,索引基本分为以下几种:B*Tree 索引,反向索引,降序索引, 位图索引,函数索引, interMedia 全文索引等。本文主要就前 6 种索引进行分析,由于interMedia 全文索引涉及的内容可以单独写一篇文章,所以不在此对其做分析。
首先给出各种索引的简要解释:
b*tree index:几乎所有的关系型数据库中都有 b*tree 类型索引,也是被最多使用的。其树结构与二叉树比较类似,根据 rid 快速定位所访问的行。
反向索引:反转了 b*tree 索引码中的字节,是索引条目分配更均匀,多用于并行服务器环境下,用于减少索引叶的竞争。
降序索引:8i 中新出现的索引类型,针对逆向排序的查询。
位图索引:使用位图来管理与数据行的对应关系,多用于 OLAP 系统。
函数索引:这种索引中保存了数据列基于 function 返回的值,在 select * from table where function(column)=value 这种类型的语句中起作用。
各种索引的结构分析
B*Tree 索引 B*Tree 索引是最常见的索引结构,默认建立的索引就是这种类型的索引。B*Tree 索引在检索高基数数据列(高基数数据列是指该列有很多不同的值)时提供了最好的性能。当取出的行数占总行数比例较小时 B-Tree 索引比全表检索提供了更有效的方法。但当检查的范围超过表的 10%时就不能提高取回数据的性能。B-Tree 索引是基于二叉树的,由分支块(branch block)和叶块(leaf block)组成。在树结构中,位于最底层底块被称为叶块,包含每个被索引列的值和行所对应的 rowid。在叶节点的上面是分支块,用来导航结构,包含了索引列(关键字)范围和另一索引块的地址。
假设我们要找索引中值为 80 的行,从索引树的最上层入口开始,定位到大于等于 50, 然后往左找,找到第 2 个分支块,定位为 75-100,最后再定位到叶块上,找到 80 所对应的 rowid,然后根据 rowid 去读取数据块获取数据。如果查询条件是范围选择的,比如 where column 20 and column 80,那么会先定位到第一个包含 20 的叶块,然后横向查找其他的叶块,直到找到包含 80 的块为止,不用每次都从入口进去再重新定位。
反向索引
反向索引是 B*Tree 索引的一个分支,它的设计是为了运用在某些特定的环境下的。Oracle 推出它的主要目的就是为了降低在并行服务器(Oracle Parallel Server)环境下索引叶块的争用。当 B*Tree 索引中有一列是由递增的序列号产生的话,那么这些索引信息基本上分布在同一个叶块,当用户修改或访问相似的列时,索引块很容易产生争用。反向索引中的索引码将会被分布到各个索引块中,减少了争用。反向索引反转了索引码中每列的字节,通过 dump()函数我们可以清楚得看见它做了什么。举个例子:1,2,3 三个连续的数,用dump()函数看它们在 Oracle 内部的表示方法。
SQL select number,dump(1,16) from dual
union all select number,dump(2,16) from dual
union all select number,dump(3,16) from dual;
NUMBE DUMP(1,16)
number Typ=2 Len=2: c1,2 (1) number Typ=2 Len=2: c1,3 (2) number Typ=2 Len=2: c1,4 (3) 再对比一下反向以后的情况:
SQL select number,dump(reverse(1),16) from dual
2 union all select number,dump(reverse(2),16) from dual 3 union all select number,dump(reverse(3),16) from dual;
NUMBE DUMP(REVERSE(1),1
number Typ=2 Len=2: 2,c1 (1) number Typ=2 Len=2: 3,c1 (2) number Typ=2 Len=2: 4,c1 (3)
我们发现索引码的结构整个颠倒过来了,这样 1,2,3 个索引码基本上不会出现在同一个叶块里,所以减少了争用。不过反向索引又一个缺点就是不能在所有使用常规索引的地方使用。在范围搜索中其不能被使用,例如,where columnvalue,因为在索引的叶块中索引码没有分类,所以不能通过搜索相
您可能关注的文档
- midasCivil在桥梁承载能力检算及荷载试验中的应用(以CivilV2012为例).docx
- Minitabv1710安装方法分析和总结.docx
- Mismatch modeling and compensation for robust speaker verification分析和总结分析和总结.docx
- ML3 重视并理解 MIS报告 5.docx
- mobile wireless Internet telephony and streaming multimedia testbed分析和总结分析和总结.docx
- Modeling and evaluation of DPS algorithm分析和总结分析和总结.docx
- Modeling languages for business processes and business rules A representational analysis分析和总结分析和总结.docx
- modifyfilelist分析和总结分析和总结.docx
- Module3教学案外研版必修4.docx
- Module7 unit 1 We fly kites in spring教学设计教案.docx
最近下载
- hohem浩瀚iSteady V3 用户使用手册.pdf
- 2025(新人教PEP版)英语五年级下册 Unit3 大单元教学设计.docx
- AI应用报告:Dive+in-扩散和深入.docx
- 练习07 中亚高考区域地理总复习(全国通用)(含答案解析).docx VIP
- 年产20万吨乙二醇精制工段工艺设计.doc
- 15G611砖混结构加固与修复(OCR).pdf VIP
- 最新最全《三字经》教案(完整版.docx VIP
- 2024年全球及中国三用工作船(AHTS)行业头部企业市场占有率及排名调研报告.docx VIP
- 2025统编版小学道德与法治一年级(下)全册教案、每课教学反思.pdf
- 施工现场专职扬尘防治管理人员和专职保洁人员情况表.docx VIP
文档评论(0)