现在位置: 首页 > 数据库索引
2014年11月05日 数据库 ⁄ 共 1233字 ⁄ 阅读 996 次
查看索引层级及行数 select index_name, blevel, num_rows from user_indexes where table_name = 'TABLE_NAME'; 注意,表名需要大写。其中,blevel是找到叶子所需要的I/O次数。而访问叶子还需要一个I/O,所以索引高度是blevel+1。 索引键压缩 使用COMPRESS可以压缩索引,块缓冲区缓存比以前能存放更多的索引条目,缓冲命中率可能会上升,物理I/O应该下降。但是要多占用一些CPU时间来处理索引,还会增加块竞争的可能性。压缩索...
阅读全文
2014年11月01日 数据库 ⁄ 共 1185字 ⁄ 阅读 1,663 次
概念 我们知道计算机所有信息最终都是通过“位bit”来运算的,二进制位运算在计算机中非常高效。而位图索引也是用0或1来处理索引进程,故得名位图索引。 结构和原理 位图索引主要针对大量相同值的列而创建的,索引块的一个索引行中存储键值、起止RowId及此键值的位图,根据位图信息可以得知每一条记录的ROWID。它为列的每个键值建立位图,位图中的每一位可能对应多个列,位图中位的值为1表示此行的值为对应的键值。 位图索引查找R...
阅读全文
2014年10月31日 数据库 ⁄ 共 5080字 ⁄ 阅读 1,169 次
Oracle B树特点 Oracle B树索引中不存在非唯一的条目。在非唯一索引中,Oracle会把rowid作为一个额外的列追加到键上,使得键唯一。如:create index I on T( x , y ) ,从概念上讲就是Create unique index I on T(x , y , rowid)。Oracle会首先按索引键值排序,然后再按照rowid升序排序。 大多数情况下,Oracle B树索引的高度都是2或者3,所以一般情况下,在索引中找到一个键只需要2或3次I/O。 Oracle B树索引所有叶子块都应该...
阅读全文
2014年10月31日 数据库 ⁄ 共 3660字 ⁄ 阅读 1,943 次
B树的结构 B树索引由根节点块,分支节点块,叶子节点块组成。对应于每个B树索引都有一个参数n,它决定了B树的所有存储块的布局。每个存储块存放n个查找键值和n+1个指针。B树的块除了有n个键&指针对外,还有一个额外的指针。在存储块能容纳n个键和n+1个指针的前提下,我们把n取得尽可能大。假定我们的存储块大小为4096字节,且整数型键值占4字节,指针占8字节。要是不考虑存储块块头信息所占空间,那么我们希望找到满足4n+8...
阅读全文
2014年10月31日 数据库 ⁄ 共 7096字 ⁄ 阅读 1,279 次
索引创建语法 CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema>.<table_name> (<column_name> | <expression> ASC | DESC, <column_name> | <expression> ASC | DESC,...) TABLESPACE <tablespace_name> STORAGE <storage_settings> LOGGING | NOLOGGING COMPUTE STATISTICS NOCOMPRESS | COMPRESS<nn> NOSORT | REVERSE PARTITION | GLOBA...
阅读全文
2014年10月30日 数据库 ⁄ 共 31063字 ⁄ 阅读 2,825 次
B树索引的相关概念 索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性。 但是,索...
阅读全文