读《Oracle 9i&10g编程艺术》记录---1.3.3 多版本

Oracle采用了一种多版本、读一致(read-consistent)的并发模型。

Oracle利用这种机制提供了以下特性:
a.  读一致查询:对于一个时间点(point in time),查询会产生一致的结果。
b.  非阻塞查询:查询不会被写入器阻塞,但在其他数据库中可能不是这样。

Oracle数据库中有两个非常重要的概念。多版本(multi-versioning)一词实质上指Oracle能够从数据库同时物化多个版本的数据。

Oracle会保证打开的结果集肯定是以下两个时间点之一的当前结果集:
a. 游标打开时的时间点。这是READ COMMITTED隔离模式的默认行为,该模式是默认的事务模式。
b.  查询所属事务开始的时间点。这是READ ONLY和SERIALIZABLE隔离级别中的默认行为。
不过,从Oracle9i开始,情况要灵活得多。实际上,我们可以指示Oracle提供任何指定时间的查询结果(对于回放的时间长度有一些合理的限制;当然,这要由你的DBA来控制),这里使用了一种称为闪回查询(flashback query)的特性。
闪回查询(即AS OF SCN或AS OF TIMESTAMP子句)

读一致性:Oracle 回滚机制,回滚段使用。

请使用浏览器的分享功能分享到微信等