Kar*_*sad 5 java oracle transactions
在阅读了很少有关交易的文件后,我现在完全糊涂了.我先解释一下我的情景.
我有一个批量读取,大约需要3分钟从表中读取数据(SELECT)查询.同时另一个线程尝试执行INSERT/UPDATE/DELETE.它抛出一个错误,说" 无法获取事务 "(因为我的数据源的默认事务为8(SERIALIZABLE)).
要允许INSERT/UPDATE/DELETE执行,我将事务设置为READ_UNCOMMITTED(根本没有锁定(读/写/范围)).但是,当我执行我的程序时,它抛出一个错误,说唯一支持的事务是READ_COMMITTED和SERIALIZABLE.
当我进一步调查,我发现了甲骨文公司推出的事务隔离型快照隔离这无形中消除重复读取和脏采取读快照给予一致的数据事务期间的数据库,在那里.
从上面的语句我可以使用READ_COMMITTED的事务类型,但是维基百科到目前为止完全混淆了我的理解与下面的陈述:
快照隔离在Oracle [2] [3] [4]和9.1之前的PostgreSQL版本中被称为"可序列化"模式[5] [6] [7],这可能会导致与"真正的可串行化"模式混淆.赞成和反对这一决定都有争议; 很清楚的是,用户必须意识到这一区别,以避免在他们的数据库系统逻辑中出现可能不希望的异常行为.
所以现在我的问题是:
| 归档时间: |
|
| 查看次数: |
4841 次 |
| 最近记录: |