oracle 并行执行 杀掉会话,oracle – 为什么即使我禁用并行DML和并行DDL也会创建并行会话...

READ和WRITE并行性并不总是捆绑在一起.

alter session disable parallel dml;仅禁用语句的WRITE部分的并行性. READ部分可能仍然并行运行.由于这是MERGE操作,因此并行提示请求读写并行写入.此外,并行提示覆盖alter session disable parallel query;,即使它不覆盖alter session disable parallel dml;.

并行服务器的数量将是所请求的并行度的两倍,以支持producer and consumer operations,以便充分利用互操作并行性.对结果进行分组或排序的查询将使用两倍的线程.在某些情况下,即使没有显式的GROUP BY或ORDER BY,也可能会发生这种情况,因为某些操作可能隐式需要排序.

样本表

create table bigtable_1(key number, value1 number);

create table bigtable_2(key number, value1 number);

并行读写

注意操作#1的PX COORDINATOR.当该步骤高于MERGE时,意味着写入是并行完成的.

rollback;

alter session enable parallel dml;

alter session enable parallel query;

explain plan for merge /*+ parallel(a,8) */ into bigtable_1 a using bigtable_2 b

on (a.key = b.key) when matched then update set a.value1 = b.value1;

select * from table(dbms_xplan.display(format => 'basic'));

Plan hash value: 827272579

------------------------------------------------------

| Id | Operation | Name |

------------------------------------------------------

| 0 | MERGE STATEMENT | |

| 1 | PX COORDINATOR | |

| 2 | PX SEND QC (RANDOM) | :TQ10003 |

| 3 | MERGE | BIGTABLE_1 |

| 4 | PX RECEIVE | |

| 5 | PX SEND HYBRID (ROWID PKEY)| :TQ10002 |

| 6 | VIEW | |

| 7 | HASH JOIN BUFFERED | |

| 8 | BUFFER SORT | |

| 9 | PX RECEIVE | |

| 10 | PX SEND HASH | :TQ10000 |

| 11 | TABLE ACCESS FULL | BIGTABLE_2 |

| 12 | PX RECEIVE | |

| 13 | PX SEND HASH | :TQ10001 |

| 14 | PX BLOCK ITERATOR | |

| 15 | TABLE ACCESS FULL | BIGTABLE_1 |

------------------------------------------------------

串行写入,并行读取

现在,MERGE操作首先是PX …操作.写操作是串行完成的,但读操作仍然是并行完成的.

rollback;

alter session disable parallel dml;

alter session disable parallel query;

explain plan for merge /*+ parallel(a,8) */ into bigtable_1 a using bigtable_2 b

on (a.key = b.key) when matched then update set a.value1 = b.value1;

select * from table(dbms_xplan.display(format => 'basic'));

Plan hash value: 1648019208

------------------------------------------------

| Id | Operation | Name |

------------------------------------------------

| 0 | MERGE STATEMENT | |

| 1 | MERGE | BIGTABLE_1 |

| 2 | PX COORDINATOR | |

| 3 | PX SEND QC (RANDOM) | :TQ10002 |

| 4 | VIEW | |

| 5 | HASH JOIN BUFFERED | |

| 6 | BUFFER SORT | |

| 7 | PX RECEIVE | |

| 8 | PX SEND HASH | :TQ10000 |

| 9 | TABLE ACCESS FULL| BIGTABLE_2 |

| 10 | PX RECEIVE | |

| 11 | PX SEND HASH | :TQ10001 |

| 12 | PX BLOCK ITERATOR | |

| 13 | TABLE ACCESS FULL| BIGTABLE_1 |

------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值