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将执行全表扫描;只有对反向键索引列进行 <>和 = 的比较操作时,其反向键索引才会得到使用。
索引列数据从序列中获取,其有序性无法规避,但在建立索引时,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将执行全表扫描;只有对反向键索引列进行 <>和 = 的比较操作时,其反向键索引才会得到使用。
发表评论
-
大数据量转存(抽取、同步)
2012-11-22 01:23 640在大数据量的转存过程中,建议使用分批转存(不要一次转存过来 ... -
Oracle数据库优化要点总结
2012-10-22 10:33 649当oracle出现性能缓慢、 ... -
PFILE与SPFILE差异
2012-10-17 11:56 7371.oracle实例启动时,寻找参数文件的顺序为 spf ... -
Oracle 分区简述
2012-10-12 12:01 648oracle8i起开始推出表分区的概念,最初只有范围分区、列表 ... -
Bitmap位图索引"高昂代价"与B-Tree比较
2012-10-10 08:54 602通过以下实验,来验证B ... -
关于Latch与Spin
2012-10-10 08:51 746latch 是一种轻量级用于保护oracle共享内存结构,用 ... -
完整的ORACLE的UTL_FILE的资料
2012-10-08 13:58 700转自:http://blog.csdn.net/alex197 ... -
RAID的类别使用(0,1,0+1,5)
2012-10-08 09:02 674raid0: 熟悉RAID 0的人都知道,它的读写速度是最高 ... -
oracle 裸设备使用和注解
2012-09-28 11:37 888看了一篇不错的的关于 ... -
EM无法登陆问题
2012-05-19 22:20 1245解决ORACLE的EM登录 这几 ... -
oracle的冷/热备份
2012-04-29 11:48 680一、 冷备份 冷 ... -
oracle安装、编译、参数配置
2011-06-09 19:23 652一、安装 按照以下标 ... -
Oracle个人笔记(SQL性能)2B
2011-06-09 19:20 6591.两者区别在哪?select trunc(sysdate,' ... -
start with...connect by prior用法
2011-06-09 19:18 616--当需要根据递归关系查询结果集时 start wit ... -
ORA-01157(表空间数据文件损坏需重建时)
2011-06-09 19:08 983EM控制台报错如下: 处理步骤: 1. 备份该数据 ... -
工作积累(游标、权限、数组)2
2011-06-09 19:04 653--游标 一、显式游标通 ... -
工作积累(表空间、导出方案、触发器)1
2011-06-09 19:01 643--查看表空间、数据文件相关信息 1、查看表空间包含哪些数据 ... -
Oracle个人笔记(系统查询语句)3
2011-06-09 18:55 522查询锁的表的方法:(1 ... -
Oracle个人笔记(SQL性能)2A
2011-06-09 18:54 6341. ...group by (code,name); 性能要 ... -
Oracle个人笔记(基本规则)1
2011-06-09 18:52 6081.GRANT 权限 ON 表名(对象名) TO 用户;2.o ...
相关推荐
基于MySQL和Lucene的反向索引系统的实时性能比较研究,刘一洲,徐鹏,搜索引擎是当今互联网使用最频繁的应用之一。为用户提供及时的,甚至是实时的信息索引是当今搜索引擎所要面对的首要挑战。倒排索
索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的...
索引,包括B树索引、基于函数的索引、位图索引、反向索引、降序索引、压缩索引等的使用方法及其适用情形等。在案例精讲中,对表压缩、约束的使能与失能、表的层次结构查询、防止删除表及对象、提取创建外键约束的...
在这个项目中,我们将为神经网络实现反向传播算法,并将其应用于手写数字识别的任务。 该项目是吴安德(Andrew Ng)的练习。 要开始该项目,您需要下载启动程序代码并将其内容解压缩到目录中。 ex4data1.mat有5000个...
第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 位图索引 ...
第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(有效位切片签名索引)是反向索引和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 决定聚簇类型的准则...
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 决定聚簇类型的准则...
由confd使用etcd作为后端配置的NGINX反向代理 这是一个使用作为后端通过动态配置的。 我们使用侦听etcd文件夹/applications更改,以防在/applications某些键更改时重新加载nginx.conf 。 这用于将请求代理到在CoreOS...
在本文中,我们使用哈希分割将反向列表划分为多个段,然后使用哈希分割在GPU上设计一种有效的反向索引GHSII。 基于GHSII,提出了一种新的分段并行T重叠算法GSPS。 GSPS一次使用段来扫描段,并使用共享内存来减少对...
该程序也可以反向运行。 给定排列索引、宽度、高度和颜色深度,可以重建图像。 这样做的目的是查看与排列索引和类似图像是否存在关系。 例如,想象一部电影的连续帧:这些键是随机间隔的还是有一个模式。 类似地,...
xML在数据交换中的应用越来越广泛,但由于标记引入...以反向算术压缩为基本压缩算法,提出针对xML数据库中压缩.XML文件的索引结构Arith Region,基于该索引结构,可高效处理形如//element1/element2/?/elmentm的查询。
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 ...
DocIndexer应用程序以各种格式和编码提取文档,使用用户可配置的Lucene分析器对其进行分析,并生成Lucene反向索引。 LuceneToMtx应用程序读取索引,对术语进行可选过滤,并生成具有匹配字典和文档文件的术语频率...
企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...
企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...
企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...
企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...
企业级用户可以借此创建新应用或对现有商业应用软件进行反向工程,而整个流程会十分迅速、流畅、经济。那些困扰项目开发的难题--------使用不同的技术、跨平台运行,以及在大部分企业中常见的混合多中开发语音都可...