2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户Oracle select为什么会产生redo?
评论
有用 0
延迟块清除
简单说就是:
在大事务时可能会操作很多数据块;而BUFFER CACHE中被修改的脏数据写入数据文件中的时机不是COMMIT而是DBWR按规则进行的;所以存在事务相关的数据块先被刷出了 buffer cache,而此时COMMIT还未执行。
当本次事务COMMIT提交后,事务相关的data block ,undo block 上的事务信息,锁信息不会被清除。
当下一次数据块读取到buffer cache(可能是SELECT读取或其它DML), oracle在读取这类数据块时作事务信息、锁信息的清除处理。
评论
有用 1
墨值悬赏