等待事件“enq: TX - index contention”与索引分裂
在执行高并发 insert(主要原因)或者delete操作时,有可能就会看到该SQL对应的索引上的的大量TX队列发生争用(RAC环境下可能所有节点都会产生)。这种问题就是由于insert了一行,索引也会跟着增加,当在索引块中找不到需要插入新行的空间时就会产生索引分裂。并且在索引完成分裂前,就会产生等待事件“enq: TX - index contention”,直到索引分裂完成。
索引分裂种类
叶节点分裂( leaf block split)
枝节点分裂( branch block split)
根节点分裂( root block split)
产生索引分裂的过程
1. 首先,DB划分出一个新的索引块
2. 其次,按一定比例复制行到新索引块
3. 最后,将新索引块添加到索引结构中
索引分裂的几种发生条件
1. 大量访问的表的索引
2. 先执行数据量很大的delete,然后立马又进行大批量insert
3. 索引只往右边生长增长,导致增长失衡
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2916305/ ,如需转载,请注明出处,否则将追究法律责任。