insert /*+append*/ into table1 select * from table2
不写日志,直接插入

解决方案 »

  1.   

    与这个有区别吗?
    INSERT INTO v_table(interid)
            SELECT InterId FROM XMLTABLE('$B/root/i' PASSING
                   XMLTYPE(xml) AS B
                   COLUMNS InterId NVARCHAR2(48) PATH
               '/i/id'); 
      

  2.   

    /*+APPEND*/插入性能总结
      

  3.   

    使用/*+append*/ 还是没有提升。。
      

  4.   

    和redo没多大关系,append作用不大。做个10046,看看等待事件
      

  5.   

    开启oracle的 parallel功能:alter session enable parallel dml;
      

  6.   

    部分TRC文件内容.
    EXEC #2:c=0,e=35,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=0,tim=985166947873
    XCTEND rlbk=0, rd_only=1, tim=985166948946
    CLOSE #2:c=0,e=6,dep=0,type=1,tim=985166949755
    =====================
    PARSING IN CURSOR #3 len=33 dep=0 uid=85 oct=42 lid=85 tim=985166949878 hv=659989950 ad='0' sqlid='8b5c3m0mpd9dy'
    alter session enable parallel dml
    END OF STMT
    PARSE #3:c=0,e=82,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=0,tim=985166949878
    EXEC #3:c=0,e=15,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=0,tim=985166949963
    XCTEND rlbk=0, rd_only=1, tim=985166949981
    CLOSE #3:c=0,e=10,dep=0,type=1,tim=985167302811
    =====================
    PARSING IN CURSOR #2 len=51 dep=0 uid=85 oct=47 lid=85 tim=985167483287 hv=1631795929 ad='7ff4ba62638' sqlid='6jpjg71hn6fqt'
    BEGIN BARCODE_FORALL_INSERT( 100008, :1, :2 ); END;
    END OF STMT
    PARSE #2:c=0,e=64,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=0,tim=985167483286
    =====================
    PARSING IN CURSOR #3 len=111 dep=1 uid=85 oct=3 lid=85 tim=985167483789 hv=3780659302 ad='7ff58152b98' sqlid='7uvga6ghphk36'
    SELECT BARCODE FROM XMLTABLE('$B/root/i' PASSING XMLTYPE(:B1 ) AS B COLUMNS BARCODE NVARCHAR2(48) PATH '/i/id')
    END OF STMT
    PARSE #3:c=0,e=229,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,plh=0,tim=985167483789
    =====================
    PARSING IN CURSOR #5 len=789 dep=3 uid=0 oct=3 lid=0 tim=985167484482 hv=3159716790 ad='7ff61922f08' sqlid='7ng34ruy5awxq'
    select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#,nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),i.indmethod#,i.trunccnt,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),nvl(i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,decode(i.pctthres$,null,null,mod(trunc(i.pctthres$/256),256)),ist.cachedblk,ist.cachehit,ist.logicalread from ind$ i, ind_stats$ ist, (select enabled, min(cols) unicols,min(to_number(bitand(defer,1))) deferrable#,min(to_number(bitand(defer,4))) valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where i.obj#=c.enabled(+) and i.obj# = ist.obj#(+) and i.bo#=:1 order by i.obj#
    END OF STMT
    PARSE #5:c=0,e=32,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=4,plh=2542797530,tim=985167484482
    EXEC #5:c=0,e=65,p=0,cr=0,cu=0,mis=0,r=0,dep=3,og=4,plh=2542797530,tim=985167484709
    FETCH #5:c=0,e=9280,p=2,cr=7,cu=0,mis=0,r=1,dep=3,og=4,plh=2542797530,tim=985167494016
    =====================