当前位置: 代码迷 >> Oracle开发 >> 一致性读,该如何处理
  详细解决方案

一致性读,该如何处理

热度:114   发布时间:2016-04-24 06:25:30.0
一致性读
考虑如下场景:
xact A 在 9:00 启动一个scan, 并在9:10结束。
其中的一致性读是通过对所有的数据块进行undo操作,将其还原到9:00时的状态进行的。
那么问题是,
假设有一个数据块x,在xact A还未扫描到x时,x由于insert大量数据而产生split,分裂为x,y,z三个数据块。那么此时当A扫描到x时如何使用undo操作还原到9:00时的状态?

或者若x由于大量数据delete并commit导致consolidate,此时如何还原已经被物理删除的数据?(数据块x已经被删除了)
------解决思路----------------------
更正一下我#3的说法。
不是不记录更新前的a、b记录,应该是把整个x块记录下来了,所以扫描undo了x块后就和y、z无关了。
  相关解决方案