Oracle In Memory Undo(IMU)

renjixinchina發表於2013-05-31
In traditional undo update, once record be updated, an undo block will be allocated in the buffer cache, 1 new entry will be inserted into the undo block immediately. If several records be updated in the same transaction, several entries generated in the undo buffer as soon as the record updated. At the mean time, each undo entry will also generate redo log entry. After introduced the IMU, new pools named IMU pools will be allocated from shared pool. Once a record be updated, an undo buffer block still be allocted from buffer cache, but without inserting a new entry into the block immediately. It will generate an undo map in the IMU pool, and one IMU node for the record change. If several records be updated, several IMU nodes will be generated in the IMU pool, and the UNDO map be updated correspondly. All of the changes occur in the IMU pool, not modify the undo buffer block. Once commit or the IMU pool be flushed, it will map the IMU nodes as undo entries into the undo block and write to disk. This process is a batch process, just 1 redo entry generated for these changes.
IMU 有兩個目的:
1 減少UNDO的產生
2 減少REDO的產生
詳細資訊見:

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

相關文章