使用append提示进行insert叫做直接路径加载插入。
【特点】
1、使用这种提示因为系统不去查找freelist链表中的空闲块,直接在高水标记位以上插入数据,因此速度比较快。但若是对于经常delete的表,浪费磁盘空间太大!
2、它不记录日志,因此一旦插入的数据在没有保存回磁盘的时候发生掉电之类的状况插入的数据不能重做。
3、/*+append*/后,需要马上提交commit ,否则会影响下一次修改失败(insert,update,delete)
在Oracle Database 10g Enterprise Edition Release 10.2.0.1.0中,如果插入操作的语法是
insert /*+append*/ into XXX values(XXX); --加行级锁
那么系统加的是row exclusive锁,也就是正常insert所加的行级锁,但是如果插入操作的语法是
insert /*+append*/ into XXX select XXX from XXX;--加表级锁
那么系统加的是exclusive锁,相当于表级锁,加表级锁意味着在本会话没有commit的时候其他任何会话都不能再进行insert,update,delete操作
原文:http://blog.itpub.net/26838108/viewspace-721266/