请教各位,我在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 呢,我在纠结逗号的使用 和三个参数的顺序,在本地也不好验证,大家有没有实际使用经验或者 更正确的写法呢,先谢谢大家了
那 /*+ append parallel(tmp,8) */ 这个append 和 parallel 中间要加上 ',' (逗号
)吗
不用逗号,并行后会自动append方式加载(会锁表,谨慎)
要在会话上,开并行允许。alter session enable parallel dml;
2、加上append后,表上其他会话的DML会陷入等待;
3、如果想用好并行SQL:注意好系统资源使用情况;如果希望DML并行,显式打开并行DML;最好insert语句与其select语句选择一样的并行度
alter session enable parallel dm;
alter table tmp nologging;insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b;
那我这样写的话会有问题吗
alter session enable parallel dm;
alter table tmp nologging;insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b;
那我这样写的话可以吗,有没有问题
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