【ASK_ORACLE】關於Oracle索引分裂你需要知道的
等待事件“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部落格 ” ,連結:http://blog.itpub.net/69992972/viewspace-2916305/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【ASK_ORACLE】由於索引分裂而產生的效能問題的解決方案Oracle索引
- 關於跨域你需要知道的跨域
- 關於CSS Transition,你需要知道的事CSS
- 關於MongoDB你需要知道的幾件事MongoDB
- 關於Android模組化你需要知道的Android
- 關於字元編碼,你所需要知道的字元
- 【ASK_ORACLE】你需要知道的對資料檔案dbf的一些基礎操作Oracle
- [譯] 關於 Angular 動態元件你需要知道的Angular元件
- 關於webpack優化,你需要知道的事(上篇)Web優化
- 關於 Git 你需要知道的一些事情Git
- 關於C++14:你需要知道的新特性C++
- Oracle索引分裂(Index Block Split)Oracle索引IndexBloC
- 你需要知道的關於 Go 包的一切Go
- 關於進入遊戲行業你需要知道的事遊戲行業
- [譯] 關於 `ExpressionChangedAfterItHasBeenCheckedError` 錯誤你所需要知道的事情ExpressError
- 關於Android的.so檔案你所需要知道的Android
- 關於insert操作造成索引葉節點分裂的驗證索引
- 索引分裂的enq索引ENQ
- 關於神經網路:你需要知道這些神經網路
- 關於Vue v-model你需要知道的一切Vue
- 關於 v-model 你需要知道的這一切!
- 關於 Linux 程式你所需要知道的一切Linux
- Google I\/O:關於產品變現你需要知道的Go
- 關於單例模式,你需要知道的幾種寫法單例模式
- 關於索引必須知道的知識索引
- Oracle索引塊分裂split資訊彙總Oracle索引
- 【ASK_ORACLE】你知道怎麼又快同時又幹淨地關閉Oracle資料庫嗎?Oracle資料庫
- 關於專案採購管理,這些你需要知道
- 關於Android Gradle你需要知道這些(4)AndroidGradle
- 關於Android Gradle你需要知道這些(3)AndroidGradle
- 關於Android Gradle你需要知道這些(1)AndroidGradle
- 關於Android Gradle你需要知道這些(2)AndroidGradle
- 關於 iOS 上的 PWA 應用,你需要知道些什麼?iOS
- [譯] 關於 Yarn 和 npm 你所需要知道的一切YarnNPM
- 關於客戶旅程地圖:你需要知道的一切地圖
- 【ASK_ORACLE】Oracle 12c之CDB與PDB的備份與恢復(二)備份恢復之前你需要知道的Oracle
- Oracle index索引塊分裂split資訊彙總OracleIndex索引
- 關於 TDengine 3.0 資料訂閱,你需要知道這些