这两个交易级别之间的差异是什么:READ WRITE
和ISOLATION LEVEL SERIALIZABLE
?
据我了解,READ WRITE
允许脏读,而ISOLATION LEVEL SERIALIZABLE
阻止数据被其他用户更改(认为我在这里弄错了)或只是读取事务开始时可用的数据(在我的交易过程中看不到其他用户更改过的数据。
答案 0 :(得分:1)
您可以找到有关此主题的详细信息on the oracle site。
基本上READ COMMITTED
允许“不可重复读取”和“幻读”,而SERIALIZABLE
中禁止这两者。
如果允许非可重复读取,则同一事务内的相同SELECT查询可能会根据发出查询的时间返回不同的结果。其他并行事务可能会更改数据,并且此更改可能会在您的事务中显示。
如果允许幻像读取,可能会发生这样的情况:当您在一个事务内发出两次相同的SELECT查询,而另一个事务并行地将行插入表中时,这些行可能会在您的事务内部变得可见,但仅限于第二个选择的结果集。因此,相同的select语句将首次返回5
行,第二次返回10
行。
两个属性都是相似的,但第一个只说明了可能会改变的数据,而scond属性则说明了可能返回的其他行。