Oracle 数据库性能优之索引技术

Oracle 数据库性能优之索引技术

ID:38569078

大小:567.97 KB

页数:45页

时间:2019-06-15

Oracle 数据库性能优之索引技术_第1页
Oracle 数据库性能优之索引技术_第2页
Oracle 数据库性能优之索引技术_第3页
Oracle 数据库性能优之索引技术_第4页
Oracle 数据库性能优之索引技术_第5页
资源描述:

《Oracle 数据库性能优之索引技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ORACLE性能优化之索引技术编写人:<曹绪才>编码:编写日期:<20150707>版本:<1.0>目录索引简介32索引的扫描方式14索引的用法5索引的监控与回收6Hints索引原理3为什么要使用索引假设查找出C2=43的行,我们需要从第一行开始,逐行的检查每行上C2的取值。即使第三行找到了。但还是需要扫描接下来的行,因为不能保证在前方还有没有满足条件的行。对一个数据量比较大的表,这样的方式是不可以接受的。于是乎就有了索引的概念,即另外开辟一个存储结构,按照某个列进行排序,并记录每行的在该列上取值的以及该行在表中的

2、对应位置,就像字典上某个拼音和页码的关系。同时因为索引的字段较少,所以索引通常会比其基表小得多。因此,使用索引的最关键的作用就是为了提高检索数据的速度。C1C2C3**AA11Inter66151**AA12Acm13012**AA13Cheises1034**AA14Bayern199254**AA15Areenal43171**AA16Liverpool16667我们在Oracle中创建一张普通表基本都是采用的是堆组织方式来存储数据,由于插入的数据时是无序的,插入速度会比较快,但是查找一个数据会比较麻烦,需要扫

3、描整个堆表才可以。如下图表是示意的一个简单表,表上有三列。每行前十六进制数字(rowid)仅示意该行的存储位置。4ORACLE索引的种类按照索引按存储方法B-Tree索引(默认,重点讨论)位图索引按照索引按功能和索引对象唯一索引非唯一索引函数索引虚拟索引反转索引不可见索引分区索引索引组织表单列索引组合索引5ORACLE索引创建语法CREATEUNIUQE

4、BITMAPINDEX.ON.(

5、

6、>ASC

7、DESC,

8、ASC

9、DESC,...)TABLESPACESTORAGELOGGING

10、NOLOGGINGCOMPUTESTATISTICSNOCOMPRESS

11、COMPRESSNOSORT

12、REVERSEPARTITION

13、GLOBALPARTITION如:createindexAPPS.I_TEST_OBJECT_NAMEonAPPS.C

14、UXTEST(OBJECT_NAME)tablespaceAPPS_TS_TX_DATApctfree10initrans2maxtrans255storage(initial64Knext1Mminextents1maxextentsunlimited);目录索引简介32索引的扫描方式14索引的用法5索引的监控与回收6Hints索引原理7B-Tree的内部原理索引的顶层为根,它包括指向索引中下一层次的条目。下一层次为分支块,它又指向位于索引中下一层索引中下一层次的块,最底层的是叶节点,它包含指向表行的索引条目。叶

15、块是双向链表的结构,这边与按键值升序或降序扫描索引。8B-Tree的内部原理B-Tree有如下特点:1.Oracle中的BtreeIndex具有3大结构,root节点,branch节点,leaf节点。Root节点始终紧跟索引段头,当索引比较小的时候,root节点,branch节点,leaf节点都存储在同一个block中,Branch节点主要存储了索引的键值,但是这个键值并不是完整的,它只是完整索引值的部分前缀。同时,Branch节点还存储了指向leaf节点的指针(DBAdatablockaddress),另外有个需

16、要注意的是branch节点中还有个叫kdxbrlmc的指针。Leaf节点主要存储了完整的索引键值以及相关索引键值的部分rowid(这个rowid去掉了dataobjectnumber部分),同时leaf节点还存储了2个指针(DBAdatablockaddress),他们分别指向上一个leaf节点以及下一个leaf节点。2.BtreeIndex是始终平衡的,也就是说从Root节点到Leaf节点的任何一个路径都是等距离的。3.BtreeIndex默认是按照索引值升序排列的,当然了我们可以在创建/重建的时候设置它降序排列

17、。4.IndexScan的时候,采用的是sequentialread,并且一次只能读一个block(INDEXFASTFULLSCAN除外)。5.BtreeIndexUpdate的时候,先做的是delete,然后进行insert。6.BtreeIndex不存储Null值,但是如果组合索引其中一列是非Null的,那么组合索引也会存储Null值。9B-Tree在

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

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

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