以下的文章主要是淺談Oracle In-Memory Undo,我在一個信譽度很好的網站找到一個關於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的介紹,望你能有所收獲。