ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

oracle怎么创建反向索引,解决enq:TX - index contention

2026/10/6 10:30:59 拓冰建站 浏览量
oracle怎么创建反向索引,解决enq:TX - index contention

有时候发生激烈的索引竞争的话,例如有大量的等待事件: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 ,说明就已经是反向索引了。