ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】关于Oracle索引分裂你需要知道的

【ASK_ORACLE】关于Oracle索引分裂你需要知道的

原创 Oracle 作者:Attack_on_Jager 时间:2022-09-26 23:00:42 0 删除 编辑

等待事件“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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    142
  • 访问量
    483081