|
原帖由 我上面有人 于 2008-3-28 16:55 发表 ![]()
所以“前滚”在commit时,系统开销和“后滚”差不多;但在rollback时,“前滚”的开销就明显小于“回滚”了。
--所以“前滚”在commit时,系统开销和“后滚”差不多
这个怎么会差不多呢,如果是用'前滚'的办法,此时before-image在数据文件中,脏块在'前滚'表空间中的,好了现在要commit,你说该怎么做?
肯定从'前滚'表空间中的脏块再重新复制回数据文件(本身这一步就是重复的,一个块先从数据文件复制到'前滚',commit了之后再复制回数据文件),而before-image块又不能覆盖(为了保持其他会话的读一致性),此时数据文件中保留before-image块和修改后的块,要保留两个块,等retention时间过了之后再把before-image块清除
也就是每次commit都要这么折腾一遍,就像undo表空间每次rollback都要这么折腾一遍道理一样
[ 本帖最后由 bluemoon0083 于 2008-3-28 17:24 编辑 ] |
|