AI智能
改变未来

Oracle IMU机制

IMU机制的意义:加块构造CR块的效率以及加块回滚效率,最关键的是减少了物理IO。

#要知道undo表空间与数据库其他表空间管理是一致的,都会被DBWR写回磁盘。

如果我们需要undo块构造一致性读时,但此时undo块已经被写回磁盘,如果此时Oracle再将undo块读入到buffer时,十分影响性能。

事务开始时在Shared pool中分配IMU buffer,将全部的回滚信息写入到IMU buffer,需要undo块时,直接读取IMU buffer。

IMU buffer的变化也会产生redo,也可以实例恢复,但是IMU buffer产生的redo不在redo buffer中产生,要知道buffer cache中产生redo的过程是,现在PGA中生成后映像,然后传到redo buffer中,有LGWR写入。
而IMU buffer产生的日志不是在PGA中产生,是在share pool中产生,Oracle会在share pool中分配 Private redo strands(redo buffer区)用于IMU buffer使用。

当IMU buffer快满时,也会被写回到buffer cache中的undo块中。

select * from v$sysstat where name like ‘%IMU%’
IMU COMMIT:
当commit时,IMU buffer往buffer cache中写, Private redo strands往redo buffer 中写。
IMU FLUSH :
当IMU BUFFER快满时,往buffer cache中写。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle IMU机制