2008-04-16
淺談 oracle事务隔离级别
关键字: 事務
Oracle 支持的 2 种事务隔离级别 Read committed 和 Serializable
根據官方資料,它們的區別如下:
动作 Read Committed Serializable
Dirty write Not possible Not possible
Dirty read Not possible Not possible
Nonrepeatable read Possible Not possible
Phantoms Possible Not possible
Read committed 是默认的隔离级别。
对于Read committed ,事务中的查询只能看到在此查询之前( 而非事务开始之前 )提交的数据。 由于 oracle 不会因为查询数据而阻止另外一个事务修改数据,因此数据可以在一个事务中的 2 次查询中,查到不同的结果。因此 可能出现 nonrepeatable read and phantoms 的情况
对于serializable transactions ,当2次执行同一条查询语句的时候(就是两次执行查询,就是说执行完第一个 .executeQuery ,然后执行第二个 .executeQuery ),如果在第一个 .executeQuery 开始执行而另外一个事务已经开始修改数据,并且已经提交,那么两次读取的数据是另外一个事务修改前的数据。如果在第一个 .executeQuery 之前,另外一个事务修改了数据,那么两次读取的数据是另外一个事务修改后的数据。
这恰恰反映了, repeatable read ,两次结果一致
这与 Read committed 完全不同, 要是 Read committed ,第一个 .executeQuery 未执行完第二事务,而在第二个 .executeQuery 前第二个事务执行完毕,那么第一个 .executeQuery 得到的是初始数据,而第二个 .executeQuery 得到的是修改后的数据
恰恰说明了 nonrepeatable read ,两次结果不一致的情况
根據官方資料,它們的區別如下:
动作 Read Committed Serializable
Dirty write Not possible Not possible
Dirty read Not possible Not possible
Nonrepeatable read Possible Not possible
Phantoms Possible Not possible
Read committed 是默认的隔离级别。
对于Read committed ,事务中的查询只能看到在此查询之前( 而非事务开始之前 )提交的数据。 由于 oracle 不会因为查询数据而阻止另外一个事务修改数据,因此数据可以在一个事务中的 2 次查询中,查到不同的结果。因此 可能出现 nonrepeatable read and phantoms 的情况
对于serializable transactions ,当2次执行同一条查询语句的时候(就是两次执行查询,就是说执行完第一个 .executeQuery ,然后执行第二个 .executeQuery ),如果在第一个 .executeQuery 开始执行而另外一个事务已经开始修改数据,并且已经提交,那么两次读取的数据是另外一个事务修改前的数据。如果在第一个 .executeQuery 之前,另外一个事务修改了数据,那么两次读取的数据是另外一个事务修改后的数据。
这恰恰反映了, repeatable read ,两次结果一致
这与 Read committed 完全不同, 要是 Read committed ,第一个 .executeQuery 未执行完第二事务,而在第二个 .executeQuery 前第二个事务执行完毕,那么第一个 .executeQuery 得到的是初始数据,而第二个 .executeQuery 得到的是修改后的数据
恰恰说明了 nonrepeatable read ,两次结果不一致的情况
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 43835 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
最新评论
-
美国梦八夺冠已成定局了!
梦八队员的运动能力太强了,抢断和快攻水平一流,往往能在某一段时间打出小高潮,把比 ...
-- by suyulin6688 -
美国梦八夺冠已成定局了!
robbin 写道keshin 写道robbin 写道美国就快攻一招鲜,如果碰上 ...
-- by keshin -
美国梦八夺冠已成定局了!
keshin 写道robbin 写道美国就快攻一招鲜,如果碰上实力强劲,内线有高 ...
-- by robbin -
美国梦八夺冠已成定局了!
keshin 写道robbin 写道美国就快攻一招鲜,如果碰上实力强劲,内线有高 ...
-- by zxpole -
美国梦八夺冠已成定局了!
robbin 写道美国就快攻一招鲜,如果碰上实力强劲,内线有高度,外线防守又好的 ...
-- by keshin






评论排行榜