您的位置:首页 > 数据库 > Oracle

Oracle 延迟块清除概念

2020-07-14 06:27 393 查看
要明确一个概念,DBWR的写入与commit没有关系,即使事务未提交,也是可以写回数据文件的。

oracle在执行一些DML操作时,会在block上有活动事务的标志,如果一个事务commit后,由于某些block在commit之前已经写回datafile, 或者事务影响到的block数过多,则commit的时候只会清理undo segment header中的事务标志信息,data block上的事务标志不会清除,否则代价过高。那么Oracle就会在读取这些block时,将这些事务标志进行清除,就是延迟块清除.

(1)快速块清除(fast block cleanout), 当事务修改的数据块全部保存在buffer cache 并且修改数据块的数据量没有超过 cache buffer 的 10%,快速清除事务信息。

(2)延迟块清除(delayed block cleanout) 当修改的数据块的阀值超过10% 或者本次事务相关的数据块已经被刷出了buffer cache, oracle 会下次访问此block 时再清除事务信息。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: