反向索引:是不是反键索引:reverse key index在这种情况下使用比较好:比如有一个字段id,他的值落在一个很小的区间,比如从9000-9999,如果建b-tree索引,那么值过于紧密,反键的原理是把值取反,那么id的区间就从0009-9999,区间就被放大,这个时候通过索引来查找数据效率会比较高(oracle这么说的)。这就是反键索引。不知道是不是你说的反向索引
解决方案 »
- oracle 多条件查询语句
- 求救:oracle9i 中long raw 数据无法实现表表转移
- 谁有除oracle网站以外的地方下载Oracle Migration Workbench地址
- 请问用sqlload导入数据的控制文件?
- oracle的字符集转换问题,我想把US7ASCII字符集的数据库文件导入到ZHS16GBK数据库中,如何修改字符集参数?
- 如何去掉某个字段中可能存在的空格 和回车键???
- Oracle里能创建Group Function吗?
- ORACLE中文字符变成了一大堆#号?急
- 怎么写多个字段的条件插入语句??
- 求救,关于oricle的sqldeveloper的问题
- ORACLE816如何在过程中创建临时表?急,在线等待
- 如何从oracle数据库中导出创建这个库的脚本程序
http://expert.csdn.net/Expert/topic/2028/2028728.xml?temp=.7110407还要可以用函数索引(不建义用)
create index index_name on tabname(instr(col_name,'adasdf'));
ON "QI"."A"
TABLESPACE "QI" REVERSECREATE INDEX "QI"."AA"
ON "QI"."A"
TABLESPACE "QI" REVERSE
如果只是%abcde ,反向索引肯定是好用的
但存在%abcde%或者abcde%就不好用了
我们经常用的btree索引是将列的值分散到不同的叶子上(叶子上会存在n行的),反向就会安装反向的列值分散到叶子上,比如原来的值是abcde,反向建索引就会用值edcba来把其放到相应的索引树的某个叶子上最典型的情况用反向索引,是当这列值都非常的接近,然后直接建索引,会造成大量的行(说白了就是rowid)放到一个叶子上,导致索引会慢,还会形成hot block但你的这种%abcde肯定也是适用的但还是建议建立相应的反向索引后,用执行计划看一下,是否用到了所建立的反向索引!