学oracle时,很多人会认为,DBWn的写与commit有关。这是错误的。其实,DBWn的写与事务是否commit,一丁点的关系都没有。现在,证明:一个未提交的事务,也是有可能被写入数据文件的。
会话1:
sys@ORCL> select xidusn,xidslot,xidsqn,ubafil,ubablk from v$transaction;
no rows selected
此时没有事务。
会话2:
hr@ORCL> select * from t;
ID NAME
---------- ----------
1 a
2 b
3 c
hr@ORCL> update t set name='d' where id=1;
1 row updated.
hr发起一条事务。
会话1:
sys@ORCL> /
XIDUSN XIDSLOT XIDSQN UBAFI