物化檢視上使用bitmap索引

westzq1984發表於2009-07-17

還是同一個客戶的系統,生產機是OLTP系統,肯定無法使用點陣圖索引,但是對於查詢機,上面不存在並行的DML操作,只有物化檢視的重新整理這個DML操作。

 

跟蹤了下dbms_mview.refresh操作,發現其其實是一條資料一條資料更新的。我刪了3條資料,在重新整理時,執行了3delete操作。

DELETE FROM "CTAIS2"."MV_TEST" SNAP$

WHERE

 "OBJECT_ID" = :1

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0         12          0           0

Execute      3      0.00       0.00          1          6          9           3

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.00       0.00          1         18          9           3

 

這樣,也不可能存在什麼並行DML的操作等。覺得把物化檢視的索引改成點陣圖索引肯定沒有問題,而且對大量的問題查詢的使用更好的執行計劃

 

測試了下,對重新整理沒什麼問題

決定下次做優化的時候提出來,以改善效能。

如果有問題,大不了資料一天不能同步,晚上重建下,沒太多危險。

 

但是需要注意,點陣圖索引對CPU存在更多的開銷,但是考慮到對SQL語句效率的改善,應該在可以接受的範圍內。

 

物化檢視的重新整理是使用遊標形式,一條一條的來乾的。其實可以用CDC捕獲變化,自己編寫SQL來同步,應該效率更高,ODI自帶的KM有一個就是這麼實現的。當然,mview log也能實現同樣的方法,dbms_mview有相應的儲存過程

 

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

相關文章