Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: explain plan

Re: explain plan

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Fri, 10 Mar 2006 23:22:58 +0000 (UTC)
Message-ID: <dut1oh$hpg$1@nwrdmz03.dmz.ncs.ea.ibs-infra.bt.com>

"Michele Campagni" <michele.campagni_at_libero.it> wrote in message news:4411a025$0$29096$5fc30a8_at_news.tiscali.it...
>I have the following execution plan for a parallel query but I can't find
>any information about the "TQ" field. Someone can tell me where I can found
>informations about it's meaning? I try Oracle manual (Performance tuning
>guide) but found
>nothing...-----------------------------------------------------------------------------------------------------------------|
>Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
>Time | TQ |IN-OUT| PQ Distrib
>|-----------------------------------------------------------------------------------------------------------------|
>0 | SELECT STATEMENT | | 1505K| 476M| 7400 (1)|
>00:01:29 | | | || 1 | PX COORDINATOR | |
>| | | | | | || 2 | PX
>SEND QC (RANDOM) | :TQ10002 | 1505K| 476M| 7400 (1)| 00:01:29 |
>Q1,02 | P->S | QC (RAND) ||* 3 | HASH JOIN | |
>1505K| 476M| 7400 (1)| 00:01:29 | Q1,02 | PCWP | || 4 |
>PX RECEIVE | | 150K| 27M| 499 (1)| 00:00:06 |
>Q1,02 | PCWP | || 5 | PX SEND HASH | :TQ10001 |
>150K| 27M| 499 (1)| 00:00:06 | Q1,01 | P->P | HASH || 6 |
>PX BLOCK ITERATOR | | 150K| 27M| 499 (1)| 00:00:06 |
>Q1,01 | PCWC | || 7 | TABLE ACCESS FULL| CUSTOMER |
>150K| 27M| 499 (1)| 00:00:06 | Q1,01 | PCWP | || 8 |
>BUFFER SORT | | | | | |
>Q1,02 | PCWC | || 9 | PX RECEIVE | |
>1500K| 205M| 6893 (1)| 00:01:23 | Q1,02 | PCWP | || 10 |
>PX SEND HASH | :TQ10000 | 1500K| 205M| 6893 (1)| 00:01:23 | |
>S->P | HASH ||* 11 | TABLE ACCESS FULL| ORDERS | 1500K|
>205M| 6893 (1)| 00:01:23 | | |
>|-----------------------------------------------------------------------------------------------------------------
>
>

The TQ column is a derived value in this output. The different layers of parallel slaves communicate through "virtual tables" called table queues.

The names of these table queues appear in the name column of the plan_table output with names like :TQn000m

The rows of the plan table which participate in creating a table queue are labelled in the output as Qn,m. (The values come from the object_node column of the plan table, where the format is Qn000m)

The "n" is the data flow operation, and the "m" is the table queue within data flow. (Parallel queries often have only one data flow operation, so you tend to see only Q1, m).

The numbering of the table queues usually indicates the order of generation of virtual tables - but I am a little puzzled by what your query execution plan is showing. Can you post the original query.

-- 
Regards

Jonathan Lewis
http://www.oracle.com/technology/community/oracle_ace/ace1.html#lewis

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

Cost Based Oracle: Fundamentals
http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
Received on Fri Mar 10 2006 - 17:22:58 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US