有时候发生激烈的索引竞争的话,例如有大量的等待事件:enq:TX - index contention,此时可能需要创建反向索引解决,那么如何创建呢?下面是创建反向索引的实验过程:
– 创建两张相同结构的表,内部结构及数据均引用scott用户下的emp表
实验:
SQL> create table test01 as select * from emp;Table created.
SQL> create table test02 as select * from emp;Table created.
SQL> select count(*) from test01;COUNT(*)
----------14
SQL> select count(*) from test02;COUNT(*)
----------14
–针对表TEST01的empno列,添加B-tree索引
SQL> create index idx_no on TEST01(EMPNO);
Index created.
–针对表TEST02的empno列,添加反向索引
SQL> create index idx_rev_no on TEST02(EMPNO) reverse;
Index created.
–验证上面的索引,NORMAL/REV表明为反向索引
SQL> select TABLE_NAME,INDEX_NAME,INDEX_TYPE from user_indexes where table_name in('TEST01','TEST02');TABLE_NAME INDEX_NAME INDEX_TYPE
------------------------------ ------------------------------ ---------------------------
TEST01 IDX_NO NORMAL
TEST02 IDX_REV_NO NORMAL/REV
可以看到 IDX_REV_NO 的索引类型是 NORMAL/REV ,说明就已经是反向索引了。