设为首页 收藏本站
查看: 912|回复: 0

[经验分享] oracle 并行学习 (三)

[复制链接]

尚未签到

发表于 2016-7-17 08:34:52 | 显示全部楼层 |阅读模式
  并行DML
  
  1.以下DML语句可以被并行地执行:

  
  DELETE
  
  包含子查询的INSERT
  
  MERGE
  
  UPDATE
  
  2.DML语句不能在以下情况下并行执行
  
  当表上有触发器时;
  
  当表上有自引用的外键约束,或支持迭代删除的外键约束,或延迟的约束时;
  
  当对象类型字段被修改的时候;
  
  当聚簇表或临时表被修改的时候;
  
  默认情况下并行DML是被禁止的。在会话级别,可以使用下面的SQL语句启用或禁用它们。
  
  ALTER SESSION ENABLE PARALLEL DML
  
  ALTER SESSION DISABLE PARALLEL DML
  
  另外,也可以使用下面的SQL语句来强制按照指定的并行度进行并行处理
  
  ALTER SESSION FORCE PARALLEL DML PARALLEL 4
  
  注意:必须在会话级别绝对启动并行DML的情况下,才可以并行处理DML语句,单独使用提示无法启动并行DML语句。
  
  SELECT pdml_status FROM v$session WHERE sid=sys_context('userenv','sid')查询会话级别并行DML状态
  
  除INSERT语句外,并行执行DML语句也需要启用并行查询。实际上,DML语句基本上是由两个操作组成的:首先找到需要
  
  被修改的记录,然后修改这些记录。问题是,如果查找记录的部分没有并行地执
  
  行,那么修改记录的部分就不能被并行执行。
  测试记录如下:
  LIBIN@orac>CREATE TABLE t AS
  2  SELECT rownum AS id, rpad('*',100,'*') AS pad
  3  FROM dual
  4  CONNECT BY level <= 100000;
  表已创建。
  已用时间:  00: 00: 12.64
LIBIN@orac>
LIBIN@orac>execute dbms_stats.gather_table_stats(ownname => user, tabname => 't')
  PL/SQL 过程已成功完成。
  已用时间:  00: 00: 26.32
  初始会话级别并行状态为DISABLED
  LIBIN@orac>SELECT pdml_status
  2  FROM v$session
  3  WHERE /* sid = sys_context('userenv','sid') */
  4        audsid = sys_context('userenv','sessionid');
PDML_STATUS
----------------
DISABLED
  已用时间:  00: 00: 00.54
  在会话级别查询并行状态
  LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>
LIBIN@orac>SELECT pdml_status
  2  FROM v$session
  3  WHERE /* sid = sys_context('userenv','sid') */
  4        audsid = sys_context('userenv','sessionid');
PDML_STATUS
----------------
DISABLED
  已用时间:  00: 00: 00.54
LIBIN@orac>ALTER SESSION ENABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>
LIBIN@orac>SELECT pdml_status
  2  FROM v$session
  3  WHERE /* sid = sys_context('userenv','sid') */
  4        audsid = sys_context('userenv','sessionid');
PDML_STATUS
----------------
ENABLED
  已用时间:  00: 00: 00.04
LIBIN@orac>ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>
LIBIN@orac>SELECT pdml_status
  2  FROM v$session
  3  WHERE /* sid = sys_context('userenv','sid') */
  4        audsid = sys_context('userenv','sessionid');
PDML_STATUS
----------------
FORCED
  已用时间:  00: 00: 00.01
并行INSERT操作测试
首先禁用并行DML,INSERT语句无法进行并行操作

LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>EXPLAIN PLAN FOR INSERT INTO t SELECT * FROM t;
  已解释。
  已用时间:  00: 00: 00.01
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1601196873
  --------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | INSERT STATEMENT  |      |   100K|    10M|   350   (2)| 00:00:05 |
|   1 |  TABLE ACCESS FULL| T    |   100K|    10M|   350   (2)| 00:00:05 |
--------------------------------------------------------------------------
  已选择8行。
  已用时间:  00: 00: 00.18
LIBIN@orac>ROLLBACK;
  回退已完成。
打开并行DML,INSERT语句可以进行并行操作
LIBIN@orac>ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>EXPLAIN PLAN FOR INSERT INTO t SELECT * FROM t;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3884603837
  -----------------------------------------------------------------------------------------------------------------
| Id  | Operation               | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT        |          |   100K|    10M|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR         |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)   | :TQ10001 |   100K|    10M|    97   (2)| 00:00:02 |  Q1,01 | P->S | QC (RAND)  |
|   3 |    LOAD AS SELECT       | T        |       |       |            |          |  Q1,01 | PCWP |            |
|   4 |     PX RECEIVE          |          |   100K|    10M|    97   (2)| 00:00:02 |  Q1,01 | PCWP |            |
|   5 |      PX SEND ROUND-ROBIN| :TQ10000 |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | P->P | RND-ROBIN  |
|   6 |       PX BLOCK ITERATOR |          |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   7 |        TABLE ACCESS FULL| T        |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
-----------------------------------------------------------------------------------------------------------------
  已选择14行。
  已用时间:  00: 00: 00.15
LIBIN@orac>ROLLBACK;
禁用并行DML模式,在提示语句下操作情况如下,INSERT语句无法进行并行操作
LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.06
LIBIN@orac>EXPLAIN PLAN FOR INSERT /*+ parallel(t 4) */ INTO t SELECT /*+ parallel(t 4) */ * FROM t;
  已解释。
  已用时间:  00: 00: 00.14
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3050126167
  --------------------------------------------------------------------------------------------------------------
| Id  | Operation            | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT     |          |   100K|    10M|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR      |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)| :TQ10000 |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    PX BLOCK ITERATOR |          |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   4 |     TABLE ACCESS FULL| T        |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
--------------------------------------------------------------------------------------------------------------
  已选择11行。
  已用时间:  00: 00: 00.10
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.04
启用并行DML模式,在提示语句下操作情况如下,INSERT语句可以进行并行操作
  LIBIN@orac>ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>EXPLAIN PLAN FOR INSERT /*+ parallel(t 4) */ INTO t SELECT /*+ parallel(t 4) */ * FROM t;
  已解释。
  已用时间:  00: 00: 00.21
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3884603837
  -----------------------------------------------------------------------------------------------------------------
| Id  | Operation               | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT        |          |   100K|    10M|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR         |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)   | :TQ10001 |   100K|    10M|    97   (2)| 00:00:02 |  Q1,01 | P->S | QC (RAND)  |
|   3 |    LOAD AS SELECT       | T        |       |       |            |          |  Q1,01 | PCWP |            |
|   4 |     PX RECEIVE          |          |   100K|    10M|    97   (2)| 00:00:02 |  Q1,01 | PCWP |            |
|   5 |      PX SEND ROUND-ROBIN| :TQ10000 |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | P->P | RND-ROBIN  |
|   6 |       PX BLOCK ITERATOR |          |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   7 |        TABLE ACCESS FULL| T        |   100K|    10M|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
-----------------------------------------------------------------------------------------------------------------
  已选择14行。
  已用时间:  00: 00: 00.23
LIBIN@orac>ROLLBACK;
并行UPDATE操作
禁用DML并行模式,UPDATE 语句无法进行并行操作

LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.03
LIBIN@orac>EXPLAIN PLAN FOR UPDATE t SET id = id + 1;
  已解释。
  已用时间:  00: 00: 00.01
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 931696821
  ---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | UPDATE STATEMENT   |      |   100K|   488K|   350   (2)| 00:00:05 |
|   1 |  UPDATE            | T    |       |       |            |          |
|   2 |   TABLE ACCESS FULL| T    |   100K|   488K|   350   (2)| 00:00:05 |
---------------------------------------------------------------------------
  已选择9行。
  已用时间:  00: 00: 00.06
LIBIN@orac>ROLLBACK;
  回退已完成。
打开DML并行模式,UPDATE 语句可以进行并行操作
LIBIN@orac>ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>EXPLAIN PLAN FOR UPDATE t SET id = id + 1;
  已解释。
  已用时间:  00: 00: 00.07
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2037160838
  ---------------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT      |          |   100K|   488K|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR       |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM) | :TQ10000 |   100K|   488K|    97   (2)| 00:00:02 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    UPDATE             | T        |       |       |            |          |  Q1,00 | PCWP |            |
|   4 |     PX BLOCK ITERATOR |          |   100K|   488K|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|   488K|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
---------------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.06
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.06
LIBIN@orac>
  当并行查询和并行DML语句都禁用时,没有操作被并行化
  LIBIN@orac>ALTER SESSION DISABLE PARALLEL QUERY;
  会话已更改。
  已用时间:  00: 00: 00.03
LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>ALTER TABLE t PARALLEL 2;
  表已更改。
  已用时间:  00: 00: 00.45
LIBIN@orac>EXPLAIN PLAN FOR UPDATE t SET id = id + 1;
  已解释。
  已用时间:  00: 00: 00.10
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 931696821
  ---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | UPDATE STATEMENT   |      |   100K|   488K|   350   (2)| 00:00:05 |
|   1 |  UPDATE            | T    |       |       |            |          |
|   2 |   TABLE ACCESS FULL| T    |   100K|   488K|   350   (2)| 00:00:05 |
---------------------------------------------------------------------------
  已选择9行。
  已用时间:  00: 00: 00.04
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.06
  当只有并行查询被启用时,DML语句的更新部分没有并行执行
  LIBIN@orac>ALTER SESSION ENABLE PARALLEL QUERY;
  会话已更改。
  已用时间:  00: 00: 00.03
LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>ALTER TABLE t PARALLEL 2;
  表已更改。
  已用时间:  00: 00: 00.21
LIBIN@orac>EXPLAIN PLAN FOR UPDATE t SET id = id + 1;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1378397380
  ---------------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT      |          |   100K|   488K|   193   (1)| 00:00:03 |        |      |            |
|   1 |  UPDATE               | T        |       |       |            |          |        |      |            |
|   2 |   PX COORDINATOR      |          |       |       |            |          |        |      |            |
|   3 |    PX SEND QC (RANDOM)| :TQ10000 |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | P->S | QC (RAND)  |
|   4 |     PX BLOCK ITERATOR |          |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | PCWP |            |
---------------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.06
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.25
  当并行查询和并行DML语句都启用时,更新部分也可以并行地执行
  LIBIN@orac>ALTER SESSION ENABLE PARALLEL QUERY;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>ALTER SESSION ENABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.03
LIBIN@orac>ALTER TABLE t PARALLEL 2;
  表已更改。
  已用时间:  00: 00: 00.04
LIBIN@orac>EXPLAIN PLAN FOR UPDATE t SET id = id + 1;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2037160838
  ---------------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT      |          |   100K|   488K|   193   (1)| 00:00:03 |        |      |            |
|   1 |  PX COORDINATOR       |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM) | :TQ10000 |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    UPDATE             | T        |       |       |            |          |  Q1,00 | PCWP |            |
|   4 |     PX BLOCK ITERATOR |          |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|   488K|   193   (1)| 00:00:03 |  Q1,00 | PCWP |            |
---------------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.06
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.01
  并行删除测试
禁用并行DML,则删除部分无法并行操作
  LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>EXPLAIN PLAN FOR DELETE t;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 276543898
  -------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT      |          |   100K|   193   (1)| 00:00:03 |        |      |            |
|   1 |  DELETE               | T        |       |            |          |        |      |            |
|   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
|   3 |    PX SEND QC (RANDOM)| :TQ10000 |   100K|   193   (1)| 00:00:03 |  Q1,00 | P->S | QC (RAND)  |
|   4 |     PX BLOCK ITERATOR |          |   100K|   193   (1)| 00:00:03 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|   193   (1)| 00:00:03 |  Q1,00 | PCWP |            |
-------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.11
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.03
  启用并行DML,则删除部分可以执行并行操作
  LIBIN@orac>ALTER SESSION FORCE PARALLEL DML PARALLEL 4;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>EXPLAIN PLAN FOR DELETE t;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1346169614
  -------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT      |          |   100K|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR       |          |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM) | :TQ10000 |   100K|    97   (2)| 00:00:02 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    DELETE             | T        |       |            |          |  Q1,00 | PCWP |            |
|   4 |     PX BLOCK ITERATOR |          |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
-------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.06
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.20
LIBIN@orac>
  禁用并行DML,即使加parallel注释删除部分也无法并行操作
  LIBIN@orac>ALTER SESSION DISABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.00
LIBIN@orac>EXPLAIN PLAN FOR DELETE /*+ parallel(t 4) */ t;
  已解释。
  已用时间:  00: 00: 00.03
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 276543898
  -------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT      |          |   100K|    97   (2)| 00:00:02 |        |      |            |
|   1 |  DELETE               | T        |       |            |          |        |      |            |
|   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
|   3 |    PX SEND QC (RANDOM)| :TQ10000 |   100K|    97   (2)| 00:00:02 |  Q1,00 | P->S | QC (RAND)  |
|   4 |     PX BLOCK ITERATOR |          |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
-------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.11
LIBIN@orac>ROLLBACK;
  回退已完成。
  已用时间:  00: 00: 00.03
  启用并行DML,加parallel注释删除部分可以并行操作
  LIBIN@orac>ALTER SESSION ENABLE PARALLEL DML;
  会话已更改。
  已用时间:  00: 00: 00.01
LIBIN@orac>EXPLAIN PLAN FOR DELETE /*+ parallel(t 4) */ t;
  已解释。
  已用时间:  00: 00: 00.07
LIBIN@orac>SELECT * FROM table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1346169614
  -------------------------------------------------------------------------------------------------------
| Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT      |          |   100K|    97   (2)| 00:00:02 |        |      |            |
|   1 |  PX COORDINATOR       |          |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM) | :TQ10000 |   100K|    97   (2)| 00:00:02 |  Q1,00 | P->S | QC (RAND)  |
|   3 |    DELETE             | T        |       |            |          |  Q1,00 | PCWP |            |
|   4 |     PX BLOCK ITERATOR |          |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWC |            |
|   5 |      TABLE ACCESS FULL| T        |   100K|    97   (2)| 00:00:02 |  Q1,00 | PCWP |            |
-------------------------------------------------------------------------------------------------------
  已选择12行。
  已用时间:  00: 00: 00.06

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-245128-1-1.html 上篇帖子: oracle 并行学习 ( 二) 下篇帖子: 开始使用oracle,记录过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表