请教各位,我在Oracle中insert时 采用append的同时,还想要加上并行度 和 noggloging,这种语法应该要怎么写合适一点呢,是 insert  /*+ append,parallel(tmp,8) nologging */  into 还是 insert /*+ append  parallel(tmp,8) nologging */  into 还是  insert /*+ append, parallel(tmp,8),nologging */  into  呢,我在纠结逗号的使用 和三个参数的顺序,在本地也不好验证,大家有没有实际使用经验或者 更正确的写法呢,先谢谢大家了

解决方案 »

  1.   

    写成如下两个条。alter table tmp nologging;insert /*+ append  parallel(tmp,8) */  into
      

  2.   


    那 /*+ append  parallel(tmp,8) */   这个append 和 parallel 中间要加上 ','  (逗号
    )吗
      

  3.   

    insert /* +parallel 8 nologging */
     不用逗号,并行后会自动append方式加载(会锁表,谨慎)
    要在会话上,开并行允许。alter session enable parallel dml;
      

  4.   

    1、nologging是关键字,从来不是提示;
    2、加上append后,表上其他会话的DML会陷入等待;
    3、如果想用好并行SQL:注意好系统资源使用情况;如果希望DML并行,显式打开并行DML;最好insert语句与其select语句选择一样的并行度
      

  5.   


    alter session enable parallel dm;
    alter table tmp nologging;insert /*+append  parallel(tmp,8) */  into  tmp select  /*+ parallel(b,8) */  * from  b;
    那我这样写的话会有问题吗
      

  6.   


    alter session enable parallel dm;
    alter table tmp nologging;insert /*+append  parallel(tmp,8) */  into  tmp select  /*+ parallel(b,8) */  * from  b;
    那我这样写的话可以吗,有没有问题
      

  7.   


    alter session enable parallel dm;
    alter table tmp nologging;insert /*+append  parallel(tmp,8) */  into  tmp select  /*+ parallel(b,8) */  * from  b;
    那我这样写的话会有问题吗
    可以,append 可以不加,加并行后 默认用的是append方式load