`

反向索引之应用

阅读更多
    Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减),如序列生产,加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插入,索引树的层级增长很快,形成明显的歪树或者热点,同时搜索索引发生的I/O读写次数和索引树的层级数成正比,也就是说,一棵具有5个层级的B -Tree索引,在最终读取到索引数据时最多可能发生多达5次I/O操作。因而,减少索引的层级数是索引性能调整的一个重要方法。


    索引列数据从序列中获取,其有序性无法规避,但在建立索引时,Oracle允许对索引列的值进行反向,即预先对列值进行比特位的反向,如 1234,1235,1236,1237,1238 经过反向后的值将是4321,5321,6321,7321。显然经过位反向处理的有序数据变得比较随机了,这样所得到的索引树就比较对称,从而提高表的查询性能。

   创建反向索引例子:
   ORDER_ID为T_ORDER表的主键,主键名为PK_ORDER,我们为ORDER_ID列上建立一个反向键索引IDX_ORDER_ID,并使PK_ORDER_ID使用这个索引,其SQL语句如下:

create table T_ORDER (

 ORDER_ID NUMBER(10) not null,

 CLIENT VARCHAR2(60),

 ADDRESS VARCHAR2(100),

 ORDER_DATE CHAR(8));

create unique index IDX_ORDER_ID on T_ORDER ( ORDER_ID ASC) reverse;

alter table T_ORDER add constraint PK_ORDER primary key (ORDER_ID) using index IDX_ORDER_ID;


   然而反向键索引也有它局限性:如果在WHERE语句中,需要对索引列的值进行范围性的搜索,如BETWEEN、<、>等,其反向键索引无法使用,此时,Oracle将执行全表扫描;只有对反向键索引列进行 <>和 = 的比较操作时,其反向键索引才会得到使用。


分享到:
评论

相关推荐

    论文研究-基于MySQL和Lucene的反向索引系统的实时性能比较研究 .pdf

    基于MySQL和Lucene的反向索引系统的实时性能比较研究,刘一洲,徐鹏,搜索引擎是当今互联网使用最频繁的应用之一。为用户提供及时的,甚至是实时的信息索引是当今搜索引擎所要面对的首要挑战。倒排索

    Oracle+10g应用指导与案例精讲

    索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的...

    Oracle 10g应用指导

    索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的...

    matlab代码sqrt-Neural-Networks-Learning:神经网络的反向传播算法的实现及其在手写数字识别任务中的应用

    在这个项目中,我们将为神经网络实现反向传播算法,并将其应用于手写数字识别的任务。 该项目是吴安德(Andrew Ng)的练习。 要开始该项目,您需要下载启动程序代码并将其内容解压缩到目录中。 ex4data1.mat有5000个...

    收获不止SQL优化

    第10章 且慢,其他索引应用让SQL飞 270 10.1 其他索引的总体概述 270 10.1.1 位图索引 271 10.1.2 函数索引 271 10.1.3 反向键索引 272 10.1.4 全文索引 272 10.2 走进其他索引的世界 272 10.2.1 位图索引 ...

    收获,不止SQL优化--抓住SQL的本质

    第10章 且慢,其他索引应用让SQL飞 270 10.1 其他索引的总体概述 270 10.1.1 位图索引 271 10.1.2 函数索引 271 10.1.3 反向键索引 272 10.1.4 全文索引 272 10.2 走进其他索引的世界 272 10.2.1 位图索引 ...

    cobs:COBS-紧凑的位片签名索引(用于基因组k-Mer数据或q-Grams)

    COBS(有效位切片签名索引)是反向索引和Bloom过滤器之间的交叉。 我们的目标应用是从文本文档中索引DNA样本或q-gram的k-mers,并使用用户选择的覆盖范围阈值对语料库进行近似模式匹配查询。 查询结果可能包含许多...

    海量数据库解决方案_韩国_李华植

    4.1.1 不同类型表的索引应用准则223 4.1.2 离散度和损益分界点227 4.1.3 索引合并和组合索引的比较229 4.1.4 组合索引的特征232 4.1.5 组合索引中列序的决定准则239 4.1.6 索引选定步骤242 4.2 决定聚簇类型的准则...

    海量数据库解决方案_韩国_李华植_Part02

    4.1.1 不同类型表的索引应用准则223 4.1.2 离散度和损益分界点227 4.1.3 索引合并和组合索引的比较229 4.1.4 组合索引的特征232 4.1.5 组合索引中列序的决定准则239 4.1.6 索引选定步骤242 4.2 决定聚簇类型的准则...

    nginx-confd-etcd-reverse-proxy:由confd使用ETCD作为后端配置的NGINX反向代理

    由confd使用etcd作为后端配置的NGINX反向代理 这是一个使用作为后端通过动态配置的。 我们使用侦听etcd文件夹/applications更改,以防在/applications某些键更改时重新加载nginx.conf 。 这用于将请求代理到在CoreOS...

    基于GPU的哈希细分索引,用于快速T重叠查询

    在本文中,我们使用哈希分割将反向列表划分为多个段,然后使用哈希分割在GPU上设计一种有效的反向索引GHSII。 基于GHSII,提出了一种新的分段并行T重叠算法GSPS。 GSPS一次使用段来扫描段,并使用共享内存来减少对...

    Image Permutator:将图像转换为排列索引,反之亦然-开源

    该程序也可以反向运行。 给定排列索引、宽度、高度和颜色深度,可以重建图像。 这样做的目的是查看与排列索引和类似图像是否存在关系。 例如,想象一部电影的连续帧:这些键是随机间隔的还是有一个模式。 类似地,...

    Arith Region——一种压缩XML的索引结构u (2006年)

    xML在数据交换中的应用越来越广泛,但由于标记引入...以反向算术压缩为基本压缩算法,提出针对xML数据库中压缩.XML文件的索引结构Arith Region,基于该索引结构,可高效处理形如//element1/element2/?/elmentm的查询。

    Oracle 9i&10g编程艺术:深入数据库体系结构(全本)含脚本

    11.2.2 反向键索引 429 11.2.3 降序索引 435 11.2.4 什么情况下应该使用B*树索引? 437 11.2.5 B*树小结 448 11.3 位图索引 448 11.3.1 什么情况下应该使用位图索引? 449 11.3.2 位图联结索引 453 11.3.3 ...

    lean:Lucene文本分析工具

    DocIndexer应用程序以各种格式和编码提取文档,使用用户可配置的Lucene分析器对其进行分析,并生成Lucene反向索引。 LuceneToMtx应用程序读取索引,对术语进行可选过滤,并生成具有匹配字典和文档文件的术语频率...

    PowerDesigner15.1汉化破解版.z01

    企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...

    PowerDesigner15.1汉化破解版.z02

    企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...

    PowerDesigner15.1汉化破解版.z04

    企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...

    PowerDesigner15.1汉化破解版.z06

    企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...

    PowerDesigner15.1汉化破解版.z05

    企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...

Global site tag (gtag.js) - Google Analytics