oracle中并行与append,如何让insert /*+ append */ 采用并行。

SQL> explain plan for insert /*+ append  parallel(my 2) */ into my select * from ac01;

已解释。

已用时间:  00: 00: 00.16

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

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

--------

Plan hash value: 2164050840

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

| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |

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

|   0 | INSERT STATEMENT   |      |  1902K|   335M| 14813  (20)| 00:02:58 |

|   1 |  LOAD AS SELECT    | MY   |       |       |            |          |

|   2 |   TABLE ACCESS FULL| AC01 |  1902K|   335M| 14813  (20)| 00:02:58 |

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

已选择9行。

已用时间:  00: 00: 01.77

貌似insert部分,不能使用并行。select 部分是可以并行的。

SQL> explain plan for insert /*+ append */ into my select /*+ parallel(ac01 2) */ * from ac01;

已解释。

已用时间:  00: 00: 00.11

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

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

--------

Plan hash value: 2135288090

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

| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |

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

|   0 | INSERT STATEMENT      |          |  1902K|   335M|  8068  (18)| 00:01:37 |        |      |         |

|   1 |  LOAD AS SELECT       | MY       |       |       |            |          |        |      |         |

|   2 |   PX COORDINATOR      |          |       |       |            |          |        |      |         |

|   3 |    PX SEND QC (RANDOM)| :TQ10000 |  1902K|   335M|  8068  (18)| 00:01:37 |  Q1,00 | P->S | QC (RAND)  |

|   4 |     PX BLOCK ITERATOR |          |  1902K|   335M|  8068  (18)| 00:01:37 |  Q1,00 | PCWC |         |

|   5 |      TABLE ACCESS FULL| AC01     |  1902K|   335M|  8068  (18)| 00:01:37 |  Q1,00 | PCWP |         |

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

已选择12行。

已用时间:  00: 00: 00.64

和书里(Troubleshooting Oracle Performance)所说的不一样:

Execute the SQL statement in parallel. Note that in this case, both the INSERT and the

SELECT can be parallelized independently. To take advantage of direct-path inserts, at

least the INSERT part must be parallelized.

书里说,insert 和select都是可以并行的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值