今天突然被问到回滚段与撤销段有什么区别,我一下子就懵了,我的理解两个应该是差不多的东西,但就是说不出来。后来查查资料原来是oracle不同版本的东西,都是负责回滚DML操作的。下面就是我整理的一些资料,供大家参考下:
在9i版本以前
Oracle使用数据库中的回滚段来实现未提交数据或因系统故障导致实例崩溃时进行回滚操作
每一个表空间需要创建回滚段,各个表空间对回滚段实现各自的管理
在9i及后续版本
提供了一种新的回滚数据的管理方式,即使用Oracle自动管理的撤销(Undo)表空间
自动撤销管理表空间统一管理所有DML的回滚操作,简化了对于回滚工作的管理
在i,10g中的回滚段仅仅用作保留向后兼容
撤销段代替了原有版本中的回滚段。
撤销的实质意味着将所作的修改退回到修改前的状态,即倒退所有DML语句