`
morris
  • 浏览: 180338 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

淺談 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 ,两次结果不一致的情况

分享到:
评论

相关推荐

    浅谈Oracle数据库性能调优 (2).pdf

    事务隔离级别决定了事务在并发环境中的可见性,Oracle支持四种隔离级别:读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)。选择合适的隔离级别...

    浅谈数据库中事务处理和并发控制技术

    浅谈数据库中事务处理和并发控制技术 数据库事务处理和并发控制是数据库管理系统(DBMS)中的核心技术, Guarantees 数据库的可靠性和一致性。本文将详细介绍数据库事务处理和并发控制技术的概念、特性和实现机制。...

    浅谈oracle rac和分布式数据库的区别

    - 分布式数据库:在分布式系统中,由于数据分布在不同节点,事务的ACID(原子性、一致性、隔离性、持久性)属性需要跨节点协调,可能引入两阶段提交等复杂机制,以确保数据一致性,这可能影响性能。 3. 故障恢复和...

    [Oracle] 浅谈Lock与Latch

    Lock的大量出现往往反映了业务逻辑的问题,如不恰当的事务隔离级别、未正确使用事务或并发访问模式。而Latch的争用通常指向数据库配置或性能问题,例如未绑定变量导致的全表扫描、热点块的存在或者是数据库架构设计...

    浅谈SQL Server数据库的特点和基本功能.pdf

    5. 事务处理:SQL Server提供了对事务的支持,事务处理确保了数据的一致性和完整性,它通过ACID属性(原子性、一致性、隔离性和持久性)来保证。 6. 备份和恢复:SQL Server提供完整的备份和恢复解决方案,支持...

    浅谈基于DAO的设计模式在构建BBS网站中的应用

    例如,初期使用MySQL这样的开源数据库可能能满足需求,但随着论坛知名度提高和访问量增加,可能需要升级到如DB2、SQL Server或Oracle等更强大的商业数据库。DAO模式的引入使得这种数据库的迁移变得更为便捷,只需...

Global site tag (gtag.js) - Google Analytics