首页 > 数据库技术 > 详细

Oracle 反键索引/反向索引

时间:2019-07-23 13:26:17      阅读:110      评论:0      收藏:0      [点我收藏+]

反键索引又叫反向索引,不是用来加速数据访问的,而是为了均衡IO,解决热块而设计的
比如数据这样:
1000001 1000002 1000005 1000006
在普通索引中会出现在一个叶子上,如果部门数据需求极大,也就是热块,多个需求之间就会有请求竞争。
为了避开竞争 建反键索引 它会将数据逆转
1000001 2000001 5000001 6000001
这样索引键就不可能分布在一个叶子上.实现了IO分离,每个数据在索引中搜寻路径也就不一致了,解决了热点块竞争问题。

建立反键索引:
SQL> alter index i5 rebuild reverse;

Index altered.

 

查元数据:SQL> select dbms_metadata.get_ddl(‘INDEX‘,‘I5‘) from dual;

DBMS_METADATA.GET_DDL(‘INDEX‘,‘I5‘)
--------------------------------------------------------------------------------

CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))
REVERSE
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATI
STICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAX
EXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROU
PS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"

 

反键索引转化为正常索引:

SQL> alter index i5 rebuild noreverse;

Index altered.

查元数据:SQL> select dbms_metadata.get_ddl(‘INDEX‘,‘I5‘) from dual;

DBMS_METADATA.GET_DDL(‘INDEX‘,‘I5‘)
--------------------------------------------------------------------------------

CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))

PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINE
XTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUF
FER_POOL DEFAULT)
TABLESPACE "USERS"
已经没有REVERSE,说明已经转划为了正常的普通索引。

 

Oracle 反键索引/反向索引

原文:https://www.cnblogs.com/jycjy/p/11231154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!