Appears in a parallel execution plan
This operation was introduced in Oracle 8.1.5 and was replaced in Oracle 9.2.0
This operation is implemented in the following versions
|
This operation appears in the slave process of a parallel query. The execution plan is only generated if the query is executed, therefore it is not sufficient just to explain the query
The execution plan can be observed in V$SQL_PLAN
This example was developed using Oracle 9.0.1
This example requires the following table definition
CREATE TABLE t1 (c1 NUMBER);
The table must contain at least one row
INSERT INTO t1 VALUES (0);
The statement
SELECT /*+ PARALLEL (t1,4) */ c1,COUNT(*)
FROM t1
GROUP BY c1
generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (GROUP BY)
2 1 SORT (GROUP BY)
3 2 TABLE ACCESS (FULL) OF 'T1'
Step 2 executes the following SQL statement using slave processes
SELECT /*+ PIV_GB */ A1.C0 C0,SYS_OP_MSR(COUNT(*)) C1
FROM
(
SELECT /*+ NO_EXPAND ROWID(A2) */ A2."C01" C0
FROM "USER1"."T1" PX_GRANULE(0, BLOCK_RANGE, DYNAMIC) A2
) A1
GROUP BY A1.C0
This generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (GROUP BY)
2 1 GRANULE ITERATOR
3 2 TABLE ACCESS (BY ROWID RANGE) OF 'T1'