oracle點陣圖索引對DML操作的影響
前段時間由於一張核心表中存在點陣圖索引,造成了嚴重而漫長的行鎖爭用(TX-row lock contention)。
經討論,終於將點陣圖索引改為了B樹索引。
該表以前只用於儲存歷史資料,因此點陣圖索引是合理的,但後來業務改造,也開始進行大量DML操作了,點陣圖索引的問題就暴露出來。
OLTP系統中是不適合使用點陣圖索引的,查閱了一下Tom的文章,擷取如下:
關於相同欄位上點陣圖索引和B樹索引的速度,兩者基本相同。由於點陣圖索引需要將點陣圖轉化為rowid,更消耗CPU,可能還會略慢一些。
問題b)Why Bitmap indexes do not update quickly? Is it only for update or any DML activities?
假如emp表中在更新僱員scott的資料時,job欄位建立有點陣圖索引,則scott的原職務和新職務對應資料都會被鎖住。
以下是模擬該問題的實驗截圖:
我分別在object_type、object_type2欄位建立B樹索引和點陣圖索引,並進行併發批量更新,後者遭遇了嚴重的行鎖爭用。
參考文件:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-2846604/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sql Server之旅——第十站 看看DML操作對索引的影響SQLServer索引
- shrink 操作對索引的影響索引
- Update操作對索引的影響索引
- 點陣圖索引(Bitmap Index)——點陣圖索引與資料DML鎖定索引Index
- DDL,DML操作對結果快取的影響快取
- Oracle DML(非select) 操作不commit 對select的影響OracleMIT
- 【Oracle】-【COMMIT對索引的影響】-從trace看COMMIT對索引的影響OracleMIT索引
- Oracle索引——點陣圖索引Oracle索引
- unusable index對DML/QUERY的影響Index
- 有關Oracle表分割槽進行(DML)維護後對索引的影響的分析Oracle索引
- 分割槽表的不同操作對索引的影響索引
- oracle分割槽表的常規操作導致對索引的影響Oracle索引
- 【Oracle】-【ROWNUM與索引】-索引對ROWNUM檢索的影響Oracle索引
- CONTEXT索引對COMMIT操作的影響 (ZT)Context索引MIT
- Oracle-點陣圖索引Oracle索引
- MySQL alter 新增列對dml影響MySql
- 操作分割槽表對global和local索引的影響索引
- 【點陣圖索引】在點陣圖索引列上進行更新操作的鎖代價研究索引
- oracle 點陣圖索引(bitmap index)Oracle索引Index
- 對列進行連線操作會影響索引的使用索引
- 驗證資料壓縮對DML的影響
- oracle本地分割槽索引跨分割槽對成本的影響Oracle索引
- 點陣圖索引(Bitmap Index)——從B*樹索引到點陣圖索引索引Index
- shrink 與rebuild對索引高度的影響對比Rebuild索引
- 點陣圖索引.sql索引SQL
- oracle全文索引之commit與DML操作Oracle索引MIT
- delete語句對索引的影響之分析delete索引
- 索引對直接路徑載入的影響索引
- 表資料的儲存對索引的影響索引
- 點陣圖索引(Bitmap Index)——索引共用索引Index
- 關於drop操作對role的影響
- stopkey對索引掃描的影響測試TopK索引
- 索引及排序對執行計劃的影響索引排序
- 關於ORACLE點陣圖索引內部淺論Oracle索引
- 點陣圖索引的工作原理 - Richard索引
- oracle 索引升降序及排序條件 對查詢計劃的影響Oracle索引排序
- 【基礎知識】索引--點陣圖索引索引
- reverse index 對於 MAX/MIN操作的影響Index