Oracle In-Memory Undo的特性討論
前兩天我在相關的網上看到了一篇關于技術文檔 All About Oracle's In-Memory Undo,其中主要是對 Oracle In-Memory Undo (IMU)的研討,在前幾年我們大家有對其強烈談論過,大部分基于猜測,這算是看到的第一篇比較細致的東西。
Oracle 公司在 10g 推出 IMU 這個特性(已經申請了專利)。Undo 作為最重要的組成部分之一,其高效與否直接關系到整個 DB 的能力。Undo 舊有的基于 Block 的段(Segment,指存儲層的概念)管理模式方式,UNDO 本身的變化要記錄到 Redo Log Buffer 里,而 IMU 避免了這個操作(因為是內存而不是存儲),從而減小了生成的 Redo 量。
另外,因為讀一致性開銷直接到了內存里而不再依賴存儲段, 整體也大大降低,CPU 的負荷也會有效降低。其應用模式應該說是適合一致讀的需求量比較大的 OLTP。
Oracle 10g 默認是使用 IMU 這個特性的。通過隱含參數 _in_memory_undo 可以關閉這個特性。因為是隱含參數,也側面反映出該特性并非那么成熟。搜索一下 Metalink,有不少關于 IMU 的 Bug,而 UNOD 的 Bug 一旦遇到,不停 DB 恐怕都很難解決。所以,對于可用性要求比較高的系統,現在起用該特性還是需要三思。
以上的相關內容就是對Oracle In-Memory Undo的討論,望你能有所收獲。
文章出自:http://www.programbbs.com/doc/class10-2.htm
【編輯推薦】