enq: TX - index contention等待事件

enq: TX - index contention常由 大量并发INSERT 造成的 index split 引起。下面截取部分有问题的
awr:
 
 
 
可以看到在awr中 发生过 3412次的 index leaf block split , 15次的branch block split 
 
建议:

1. 定期对 DLog 相关的索引执行 coalesce 操作 而非 rebuild 操作。 rebuild 可能导致索引高度下降,当再有 大量插入后可能会导致索引root node split

2. 分区表的话,考虑使用global hash index ,global hash index可以很大程度上避免索引插入争用。
 
SQL> analyze index business.PK_TINSURED validate structure;

Index analyzed.

SQL> select blocks,lf_blks,del_lf_rows from index_stats;

    BLOCKS    LF_BLKS DEL_LF_ROWS
---------- ---------- -----------
    219608     213822         334

SQL> alter index business.PK_TINSURED coalesce;

Index altered.

Elapsed: 00:01:56.97

SQL> analyze index business.PK_TINSURED validate structure;

Index analyzed.

Elapsed: 00:00:27.93
SQL> select blocks,lf_blks,del_lf_rows from index_stats;

    BLOCKS    LF_BLKS DEL_LF_ROWS
---------- ---------- -----------
    219608     165849           0

你可能感兴趣的:(Oracle)