TRANSACTION级别之间的差异:READ WRITE和ISOLATION LEVEL SERIALIZABLE

时间:2014-03-26 22:23:54

标签: sql oracle

这两个交易级别之间的差异是什么:READ WRITEISOLATION LEVEL SERIALIZABLE? 据我了解,READ WRITE允许脏读,而ISOLATION LEVEL SERIALIZABLE阻止数据被其他用户更改(认为我在这里弄错了)或只是读取事务开始时可用的数据(在我的交易过程中看不到其他用户更改过的数据。

1 个答案:

答案 0 :(得分:1)

您可以找到有关此主题的详细信息on the oracle site

基本上READ COMMITTED允许“不可重复读取”和“幻读”,而SERIALIZABLE中禁止这两者。

如果允许非可重复读取,则同一事务内的相同SELECT查询可能会根据发出查询的时间返回不同的结果。其他并行事务可能会更改数据,并且此更改可能会在您的事务中显示。

如果允许幻像读取,可能会发生这样的情况:当您在一个事务内发出两次相同的SELECT查询,而另一个事务并行地将行插入表中时,这些行可能会在您的事务内部变得可见,但仅限于第二个选择的结果集。因此,相同的select语句将首次返回5行,第二次返回10行。

两个属性都是相似的,但第一个只说明了可能会改变的数据,而scond属性则说明了可能返回的其他行。