insert /*+ append */ 好处和弊端
(2016-01-15 16:33:19)分类: Oracle |
好处:
1.oracle在插入数据的时候,会直接在目标表的高水位上插入,而不会想常规插入一样在高水位线以下寻找可以插入的数据块;
2.append insert 不会像常规插入一样把相关数据缓存在buffer
cache上,而是直接插入数据块,省去了缓存数据块的开销;
3.在非归档模式或者表是nologging模式时,使用append在目标表上插入数据不会产生redo,省去了产生redo这部分工作的开销。(对数据字典的修改、空间分配等会产生少量redo)
弊端:
1.对于经常delete的表,由于直接在高水位上插入,浪费磁盘空间太大;
2.使用append hint之后,在commit之前会对目标表加LMODE=6的排它锁,其他人无法对这个表做任何的dml操作,可能会导致严重的等待问题。
1.oracle在插入数据的时候,会直接在目标表的高水位上插入,而不会想常规插入一样在高水位线以下寻找可以插入的数据块;
2.append insert
3.在非归档模式或者表是nologging模式时,使用append在目标表上插入数据不会产生redo,省去了产生redo这部分工作的开销。(对数据字典的修改、空间分配等会产生少量redo)
弊端:
1.对于经常delete的表,由于直接在高水位上插入,浪费磁盘空间太大;
2.使用append hint之后,在commit之前会对目标表加LMODE=6的排它锁,其他人无法对这个表做任何的dml操作,可能会导致严重的等待问题。