insert /**//*+append*/ into gis select * from typhoon_insert_temp;
insert into gis select * from typhoon_insert_temp;我看了下执行计划是一样的,为什么有的高手说上面的要快速一点呢?而且/**//*+append*/  在plsql中我怎么看他是被注释掉的?

解决方案 »

  1.   

    是/*+ append */
    要想速度更快,根据具体情况,可配合nologging和parallel来。
      

  2.   


    你看的主要是执行计划里的执行路径吧,这个hint主要是 优化insert的时候,直接在数据块后面做append,从而会提高速度。对于执行路径没有差别。如果可以去掉目标表的index的话,也会提高insert速度。
      

  3.   

    /*+APPEND* 配合NOLOGGING 效果更好
    给你附带另外一些东西 网上可以搜到
    24. /*+USE_HASH(TABLE)*/ 
    将指定的表与其他行源通过哈希连接方式连接起来. 
    例如: 
    SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO; 25. /*+DRIVING_SITE(TABLE)*/ 
    强制与ORACLE所选择的位置不同的表进行查询执行. 
    例如: 
    SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO; 
      

  4.   

    批量插入 你可以试试用  BULK CONNECT 和 forall 结合起来使用