oracle 并行学习 (三)

并行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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值