用示例比较Oracle的 Read committed 和Serializable 事务隔离等级的区别

转自:http://www.dataguru.cn/thread-286082-1-1.html


用示例比较Oracle的 Read committed 和Serializable 事务隔离等级的区别,给出SQL演示过程。
Read committed读已提交事务隔离等级:Oracle 默认隔离等级,支持不可重复读和幻读。
Serializable 事务隔离等级:只能看到事务开始时所有提交的改变和自身的改变,不支持不可重复读和幻读,事务开始是什么样子,结果就是什么样子,其他用户影响不了这个事务。
会话A
LEO1@LEO1>create table leo9(xint,yint);                创建表
Table created.
LEO1@LEO1>insert intoleo9values(100,100);             插入一行
1 row created.
LEO1@LEO1>commit;                                提交
Commit complete.
LEO1@LEO1>set transactionisolationlevel serializable;       启动Serializable 事务隔离等级
Transaction set.
LEO1@LEO1>select * from leo9;
       X          Y
---------- ---------------------------
       100      100
会话B,我们用另一个会话不管怎么修改leo9表,都不会影响会话A事务
LEO1@LEO1>insert intoleo9values(200,200);      
1 row created.
LEO1@LEO1>commit;
Commit complete.
LEO1@LEO1>insert intoleo9values(300,300);
1 row created.
LEO1@LEO1>commit;
Commit complete.
会话A,还是一条数据
LEO1@LEO1>select * from leo9;
       X          Y
---------- ---------------------------
       100      100
会话A自己修改的内容在事务中是生效的
LEO1@LEO1>insert intoleo9values(400,400);          我们插入一条记录
1 row created.
LEO1@LEO1>select * fromleo9;                    在本事务中是可以看到的
       X          Y
---------- ----------
      400       400
      100       100
LEO1@LEO1>commit;                            一旦事务结束,Serializable 事务隔离等级就会失效
Commit complete.
会话A,又可以看到所有的记录了
LEO1@LEO1>select * from leo9;
       X          Y
---------- ----------
      400       400
      100       100
      200       200
      300       300
两种事务隔离等级的比较
Read committed                     V.S                     Serializable   Transactions
支持SQL92标准                                             支持SQL92标准
读取物化视图 维护语句级一致性                              维护事务级一致性
事务一致性 支持语句级                                      支持事务级
行级锁 支持                                               支持
读锁定写 不支持                                            不支持
写锁定读 不支持                                            不支持
非行级锁 不支持                                            不支持
行级锁      支持                                                支持
事务锁等待 支持                                            支持

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值