关于insert 时同时nologging+parallel+append 的语法问题

panda0234 2019-01-14 11:47:43
请教各位,我在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 呢,我在纠结逗号的使用 和三个参数的顺序,在本地也不好验证,大家有没有实际使用经验或者 更正确的写法呢,先谢谢大家了
...全文
1745 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
insert /* +parallel 8 nologging */ 不用逗号,并行后会自动append方式加载(会锁表,谨慎) 要在会话上,开并行允许。alter session enable parallel dml;
  • 打赏
  • 举报
回复
引用 7 楼 panda0234 的回复:
[quote=引用 5 楼 学海无涯回头是岸_ 的回复:] insert /* +parallel 8 nologging */ 不用逗号,并行后会自动append方式加载(会锁表,谨慎) 要在会话上,开并行允许。alter session enable parallel dml;
alter session enable parallel dm; alter table tmp nologging; insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b; 那我这样写的话会有问题吗[/quote] 可以,append 可以不加,加并行后 默认用的是append方式load
panda0234 2019-01-15
  • 打赏
  • 举报
回复
引用 6 楼 minsic78 的回复:
1、nologging是关键字,从来不是提示; 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; 那我这样写的话可以吗,有没有问题
panda0234 2019-01-15
  • 打赏
  • 举报
回复
引用 5 楼 学海无涯回头是岸_ 的回复:
insert /* +parallel 8 nologging */ 不用逗号,并行后会自动append方式加载(会锁表,谨慎) 要在会话上,开并行允许。alter session enable parallel dml;
alter session enable parallel dm; alter table tmp nologging; insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b; 那我这样写的话会有问题吗
minsic78 2019-01-15
  • 打赏
  • 举报
回复
1、nologging是关键字,从来不是提示; 2、加上append后,表上其他会话的DML会陷入等待; 3、如果想用好并行SQL:注意好系统资源使用情况;如果希望DML并行,显式打开并行DML;最好insert语句与其select语句选择一样的并行度
panda0234 2019-01-14
  • 打赏
  • 举报
回复
引用 3 楼 卖水果的net 的回复:
不用加逗号,用空格。
好的,谢谢,我去试试
卖水果的net 2019-01-14
  • 打赏
  • 举报
回复
不用加逗号,用空格。
panda0234 2019-01-14
  • 打赏
  • 举报
回复
引用 1 楼 卖水果的net 的回复:
写成如下两个条。 alter table tmp nologging; insert /*+ append parallel(tmp,8) */ into
那 /*+ append parallel(tmp,8) */ 这个append 和 parallel 中间要加上 ',' (逗号 )吗
卖水果的net 2019-01-14
  • 打赏
  • 举报
回复
写成如下两个条。 alter table tmp nologging; insert /*+ append parallel(tmp,8) */ into

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧