您的位置:首页 > 数据库 > Oracle

Oracle插入大数据的方法总结

2013-11-25 22:23 197 查看
假设T1是待插入的表,数据来自T2(或者多表连接产生的临时表)

一、使用hint

INSERT   /*+
nologging  append  parallel(T1,4)*/  
INTO  T1  SELECT   *   FROM   T2;

1、非归档模式下,只需append就能大量减少redo的产生;归档模式下,只有append+nologging才能大量减少redo。
2、insert /*+ append */ 时会对表加锁(排它锁),会阻塞表上的除了select以外所有DML语句;传统的DML在TM
enqueue上使用模式3(row exclusive),其允许其他DML在相同的模式上获得TM enqueue。但是直接路径加载在TM
enqueue使用模式6(exclusive),这使其他DML在直接路径加载期间将被阻塞。
3、insert /*+ append */ 直接路径加载,速度比常规加载方式快。因为是从HWM的位置开始插入,也许会造成空间浪费。

4、parallel是并发执行,参数是指并发的线程数。

二、使用exp/imp  或  expdp/impdp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  insert 优化