众所周知,脏读的定义在SQL92标准中是这样定义的:
SQL-transaction T1 modifies a row. SQL- transaction T2 then reads that row before T1 performs a COMMIT. If T1 then performs a ROLLBACK, T2 will have read a row that was never committed and that may thus be considered to have never existed.
而且ORACLE本身也没有实现脏读。
那下面这种现象应该属于哪种隔离级别呢?
1. 事务A修改了某条数据(还未提交)
2. 事务B查询了该条正在被修改的数据(但是查询出来的是还没修改时候的值,因为事务A还没提交)
3. 事务A提交了修改,数据发生变化
这时候事务B得到的数据就是脏数据了?
------最佳解决方案--------------------
隔离性B读的肯定是未修改的数据,未提交的数据存在高速缓存中的是脏数
------其他解决方案--------------------
对头对头对头对头对头这下可以了吧
------其他解决方案--------------------
不同的事务隔离级别,B能读到的未提交的数据,那么就是脏读,在oracle中这属于,READ UNCOMMITTED的事务隔离级别。
------其他解决方案--------------------
Oracle不支持脏读啊,也就是说。Oracle最低的隔离级别,也可以说缺省隔离级别就是READ COMMITED。
我想了下,这个现象应该属于不可重复读的范畴?