[转载]延迟块清除

1:原文出自:什么是延迟块清除

http://www.itpub.net/728948,1.html

http://www.itpub.net/showthread.php?threadid=596002

http://zhouwf0726.itpub.net/post/9689/272804

NinGoo回复的内容:

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

2:另外一贴:没有commit的数据到底会不会被写道数据文件

http://www.itpub.net/769002,2.html

[@more@]

1:什么是延迟块清除

WESTLIFE_XU回复的内容:

commit之前有些block就已经写到datafile了


其实这个好理解的,还没commits,某些block就写到数据文件了。显然,oracle不会在commit时重新把这些block读到buffer里面进行清除

这就需要下一回对这些block进行清除,这就是延迟块清除

2:没有commit的数据到底会不会被写道数据文件

NinGoo回复:

commit之前被写入datafile的block,是commit才会导致延迟块清除,rollback则需要将block重新读入buffer,不然你怎么rollback?

请使用浏览器的分享功能分享到微信等