Oracle 有哪位仁兄帮忙给解释一下ORACLE 中反向键的索引,并有哪些实用意义? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Oracle自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减)加入的情况,默认的B- Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快。搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B-Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作。因而,减少索引的层级数是索引性能调整的一个重要方法。如果索引列的数据以严格的有序的方式插入,那么B-Tree索引树将变成一棵不对称的"歪树",而如果索引列的数据以随机值的方式插入,我们将得到一棵趋向对称的索引树,既然索引列数据从序列中获取,其有序性无法规避,但在建立索引时,Oracle允许对索引列的值进行反向,即预先对列值进行比特位的反向,如 1000,10001,10011,10111,1100经过反向后的值将是0001,1001,1101,0011。显然经过位反向处理的有序数据变得比较随机了,这样所得到的索引树就比较对称,从而提高表的查询性能。但反向键索引也有它局限性:如果在WHERE语句中,需要对索引列的值进行范围性的搜索,如BETWEEN、<、>等,其反向键索引无法使用,此时,Oracle将执行全表扫描;只有对反向键索引列进行 <> 和 = 的比较操作时,其反向键索引才会得到使用。 跪求create or replace directory image as 'E:\a'; 求一SQL,高手请进! 新手求助:Oracle如何把.dmp文件导入数据库? oracle的随机函数为什么不能查处随机的值.解决马上给分 pl/sql developer的一个问题 求一条关于重复语句的SQL语句 ORCAL 登录问题。。。急 帮我看看树结构的SQL语句如何修改? jdbc的基础问题 关于oracle中的服务名的问题 在官方网站下的 Oracle 11g 第一版 需要注册吗? DBA_TABLESPACES中的SEGMENT_SPACE_MANAGEMENT字段是什么意思?
如果索引列的数据以严格的有序的方式插入,那么B-Tree索引树将变成一棵不对称的"歪树",而如果索引列的数据以随机值的方式插入,我们将得到一棵趋向对称的索引树,既然索引列数据从序列中获取,其有序性无法规避,但在建立索引时,Oracle允许对索引列的值进行反向,即预先对列值进行比特位的反向,如 1000,10001,10011,10111,1100经过反向后的值将是0001,1001,1101,0011。显然经过位反向处理的有序数据变得比较随机了,这样所得到的索引树就比较对称,从而提高表的查询性能。但反向键索引也有它局限性:如果在WHERE语句中,需要对索引列的值进行范围性的搜索,如BETWEEN、<、>等,其反向键索引无法使用,此时,Oracle将执行全表扫描;只有对反向键索引列进行 <> 和 = 的比较操作时,其反向键索引才会得到使用。