A用户 update 5000 -> 7000
B用户 select这条数据 读出来是5000
因为 读的是undo segments ,此时 7000 其实已经写进去了但是是在do blocks中,undo segments 是为了做回滚用 保存更新前的事
undo segments -> do blocks
很重要的一点 :
oracle select count(*) from xxx不会锁表 因为他有undo segments
sql server就不行了 要锁表 万一挂了 后面事务全挂 oracle 无非就是io量大
原文链接:https://www.f2er.com/oracle/208221.html