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?
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/728254/viewspace-914343/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/728254/viewspace-914343/