Bri*_*ian 6 java database oracle transactions isolation
我对Oracle阻塞有一点了解 - 更新如何阻止其他更新,直到事务完成,编写器如何阻止读取器等.
我理解悲观和优化锁定的概念,以及关于丢失丢失更新的典型银行教科书示例等.
我也理解JDBC事务隔离级别,例如,我们很高兴看到未提交的数据.
然而,我对这些概念如何相关和相互作用有点模糊.例如:
任何澄清这些主题的话都会非常感激!
Oracle 允许任一类型的锁定 - 您构建应用程序的方式决定了所使用的内容。回想起来,这实际上并不是一个数据库决定。
大多数情况下,Oracle 的锁定足以满足与数据库的有状态连接。在无状态应用程序(例如 Web 应用程序)中,您无法使用它。在这种情况下,您必须使用应用程序级锁定,因为锁定适用于会话。
通常你不需要担心它。在 Oracle 中,读取器永远不会阻止写入器,写入器也永远不会阻止读取器。Oracle 的行为不会随着各种 ANSI 隔离级别的变化而改变。例如,Oracle中不存在“脏读”这样的事情。Tom Kyte 指出,允许脏读的精神是为了避免阻塞读,这在 Oracle 中不是问题。
我强烈建议您阅读 Tom Kyte 的优秀著作“Expert Oracle Database Architecture”,其中对这些主题和其他主题进行了非常清晰的阐述。
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |