查看同一桌子上的以下交易:
T1 SELECTs有哪些变化?
答案 0 :(得分:1)
对于Oracle,具有默认隔离级别(Read Committed)
T1, first select -> Does not see any changes T1, second select -> Does not see any changes by T2 T1, third select -> Does not see any changes by T3, but sees changes by T2 (phantom read) T1, forth select -> Sees all the changes (phantom read)
因此,T1基本上可以看到任何提交的内容。
答案 1 :(得分:0)
Oracle显式支持READ COMMITTED,它声明事务可能只读取已在数据库中提交的数据。没有脏读(读取未提交的数据)。
在上面的场景中,T1只是SELECT数据,T2操纵数据(更新,删除)和T3插入数据。根据事务中的COMMIT时序,不会发生死锁,T1下方将显示以下内容:
第三个SELECT:T2的变化将是可见的(但不是T3)。 第四选择:从T2和T3的变化。 其他查询无法使用的更改(第一和第二)。
在任何事务中的COMMIT之前,由于Oracle默认的ISOLATTION Level设置,数据将不会对任何其他事务可见。