insert /*+ append */ into..

解决方案 »

  1.   

    UNDO和Redo应该放在最快的磁盘系统上,并且应该与其它数据存储处于不同的磁盘系统,最好它们之间也处于不同的磁盘系统,避免相互影响。可以通过为UNDO表空间创建属于不同磁盘系统的数据文件来分担UNDO表空间承受的IO压力。在线Redo日志文件可以放在经过条带化的存储系统中,提高IO性能。
      

  2.   

    怕undo空间爆满可以考虑,按批次提交,给你一个小例子,这个例子是100行一提交,可以根据你自己需求去修改:
    DECLARE 
       v_count NUMBER; 
     BEGIN 
       FOR cur IN (SELECT * FROM t_ref) LOOP 
         INSERT INTO t VALUES cur; 
         v_count := v_count + 1; 
         IF v_count >= 100 THEN 
           COMMIT; 
         END IF; 
       END LOOP; 
       COMMIT; 
     END; 
     /