dml的并行查看和开启
看看并行选件是否安装
Select * FROM V$OPTION where parameter like 'Parallel%';
看Parallel execution是不是TRUE
- 如果是TRUE,执行语句后查看
-
select * from V$pq_sesstat;
where name like '%Parallelized';
(以上两行一起执行)
如果Queries Parallelized>>0就说明是执行了并行
开启并行
//开启PDML的开关
SQL> alter session enable parallel dml;
Session altered
使用hint,开启8个并行度进行insert操作。
--并行insert
SQL>insert /*+ parallel(t,8) */ into t select * from t;
10039808 rows inserted
Executed in 76.238 seconds
运行过程中,出现的并行操作过程如下。
//开启8个并行度;
SQL> select * from v$px_session;
SADDR SID SERIAL# QCSID QCSERIAL#
---------------- ---------- ---------- ---------- ----------
070000007FFF52E0 361 3123 324 26152
070000007FE84950 176 50028 324 26152
070000007FE7EC70 178 35508 324 26152
070000007FE0AAF0 218 5994 324 26152
070000007D29D620 510 20829 324 26152
070000007D2A0490 509 26391 324 26152
070000007FC94480 35 50615 324 26152
070000007FFFAFC0 359 32516 324 26152
070000007D12FB00 324 26152 324
9 rows selected
SQL> select * from v$px_process;
SERVER_NAME STATUS PID SPID SID SERIAL#
----------- --------- ---------- ------------------------ ---------- ----------
P006 INUSE 100 19005590 35 50615
P001 INUSE 69 19398710 176 50028
P002 INUSE 73 9633968 178 35508
P003 INUSE 85 23068694 218 5994
P007 INUSE 102 18743298 359 32516
P000 INUSE 66 14221352 361 3123
P005 INUSE 99 21233884 509 26391
P004 INUSE 95 19071188 510 20829
8 rows selected