Oracle的读一致性(read-consistency)和多版本


Oracle 总是基于查询的某个时间点来做决定(从这个时间点开始查询是一致的)。也就是说,Oracle 会保证打开的结果集肯定是以下两个时间点之一的当前结果集:

游标打开时的时间点。这是READ COMMITTED 隔离模式的默认行为,该模式是默认的事务模式(第7 章将介绍READ COMMITTED、READ ONLY 和SERIALIZABLE 事务级别之间的差别)。

查询所属事务开始的时间点。这是READ ONLY 和SERIALIZABLE 隔离级别中的默认行为。

闪回技术flashback--

alter table t_nik enable row movement;

作用是,允许Oracle 修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,

而且这一行永远拥有这个rowid

variable SCN number

exec :scn := dbms_flashback.get_system_change_number

select * from t_nik  AS OF SCN :scn;

可以从特定的时间点,从回滚段中查询出数据来。

相关内容