原厂:什么是索引分裂?
小白:索引还分裂?,没听说过,不是我干的,肯定是垃圾应用捣的鬼,数据库不起应用跑的好好的。
原厂:out
临阵磨枪:
事务修改了索引块上的信息,而索引块没有足够空间存放这些信息,必须分裂出一个新块来存放,因此导致分裂现象。最常见的是叶子块分裂,可以在awr中搜索node split 或者v$sesstat 中过滤splits。
索引的争用源自于索引的分裂,而触发索引的分裂的契机就是索引上的高并发事务操作。
如何去解决高并发导致索引分裂的争用:
1.增加itl槽来增加并发处理能力
即修改索引initrans 参数,其实修改initrans 参数并没有真正解决问题,随着并发度的不断提升,itl 槽的争用也越发激烈。
2.反向建索引。
利:入库高效了,几乎完全消除了enq:tx-index contention
弊:数据读取低效,本来访问一个索引块即可,现在需要访问多个索引块了,增加了额外i/o开销。
引自:http://blog.itpub.net/26736162/viewspace-2139232/
阅读(2414) | 评论(0) | 转发(0) |