Direct Load Data的时候在表上加了绝对锁('Exclusive'),保证High Water Mark不被其他session修改;因High Water Mark不变,也就不会影响其他session一致读,也就不需要产生很多的undo。
SQL> truncate table test;
Table truncated.
SQL> insert /*+ append */ into test select * from t where rownum<10;
9 rows created.
SQL> select * from test;
select * from test *
ERROR at line 1:
ORA-12838: cannot read/modify an object after modifying it in parallel
SQL> delete from test;
delete from test *
ERROR at line 1:
ORA-12838: cannot read/modify an object after modifying it in parallel
同时这也是为什么当前session也无法对表进行查询和修改的原因。