パラレル問合せまたは分散問合せ内で文をトレースした場合は、使用する文によって実行計画の出力が異なります。
Table created.
create table D2_t2 (unique1 number) parallel - (degree 6);
Table created.
create unique index d2_i_unique1 on d2_t1(unique1);
Index created.
set long 500 longchunksize 500 SET AUTOTRACE ON EXPLAIN SELECT /*+ INDEX(B,D2_I_UNIQUE1) USE_NL(B) ORDERED - */ COUNT (A.UNIQUE1) FROM D2_T2 A, D2_T1 B WHERE A.UNIQUE1 = B.UNIQUE1;
Execution Plan ---------------------------------------------------------- Plan hash value: 107954098 -------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows |Bytes| Cost(%CPU)| Time | TQ |IN-OUT| PQ Distrib | -------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 26 | 1 (0)| 00:00:01 | | | | | 1 | SORT AGGREGATE | | 1 | 26 | | | | | | | 2 | PX COORDINATOR | | | | | | | | | | 3 | PX SEND QC (RANDOM) | :TQ10001| 1 | 26 | | | Q1,01 | P->S | QC (RAND) | | 4 | SORT AGGREGATE | | 1 | 26 | | | Q1,01 | PCWP | | | 5 | NESTED LOOPS | | 1 | 26 | 1 (0)| 00:00:01 | Q1,01 | PCWP | | | 6 | PX RECEIVE | | | | | | Q1,01 | PCWP | | | 7 | PX SEND BROADCAST | :TQ10000| | | | | Q1,00 | P->P | BROADCAST | | 8 | PX BLOCK ITERATOR | | 1 | 13 | 0 (0)| 00:00:01 | Q1,00 | PCWC | | | 9 | TABLE ACCESS FULL| D2_T2 | 1 | 13 | 0 (0)| 00:00:01 | Q1,00 | PCWP | | | 10 | PX BLOCK ITERATOR | | 1 | 13 | 2 (0)| 00:00:01 | Q1,01 | PCWC | | |* 11 | TABLE ACCESS FULL | D2_T1 | 1 | 13 | 2 (0)| 00:00:01 | Q1,01 | PCWP | | -------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 11 - filter("A"."UNIQUE1"="B"."UNIQUE1") Note ----- - dynamic sampling used for this statement
Statistics ---------------------------------------------------------- 467 recursive calls 27 db block gets 147 consistent gets 20 physical reads 4548 redo size 502 bytes sent via Oracle Net Services to client 496 bytes received via Oracle Net Services from client 2 Oracle Net Services roundtrips to/from client 14 sorts (memory) 0 sorts (disk) 1 rows processed
consistent getsまたはphysical readsの値が、戻されるデータ量に比例して高い場合、問合せにはコストがかかるため、再確認して最適化する必要があります。たとえば、戻される行が1,000行未満で、consistent getsが1,000,000、physical readsが10,000の場合、さらに最適化が必要です。
注意:
V$SQLまたはTKPROFを使用して、ディスク読取りおよびバッファ取得を監視することもできます。
例8-6 パラレル問合せオプションによる文のトレース
パラレル問合せオプションを実行してパラレル問合せをトレースするには、次のようにします。
create table D2_t1 (unique1 number) parallel - (degree 6);
例8-7 ディスク読取りおよびバッファ取得の監視
SET AUTOTRACE TRACEONLY STATISTICS
結果は次のようになります。