oracle點陣圖索引對DML操作的影響

to_be_Dba發表於2021-12-09

 

前段時間由於一張核心表中存在點陣圖索引,造成了嚴重而漫長的行鎖爭用(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樹索引和點陣圖索引,並進行併發批量更新,後者遭遇了嚴重的行鎖爭用。

 

參考文件:


oracle點陣圖索引對DML操作的影響 【實驗】oracle中點陣圖索引對DML操作的影響.TXT

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-2846604/,如需轉載,請註明出處,否則將追究法律責任。

相關文章