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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Parallel Query & Shared Pool SQL TEXT

RE: Parallel Query & Shared Pool SQL TEXT

From: Lex de Haan <lex.de.haan_at_naturaljoin.nl>
Date: Mon, 10 Oct 2005 20:58:54 +0200
Message-Id: <20051010185856.F105C1FA1EF@turing.freelists.org>


indeed -- they are names of so-called table queues, and they show that you apparently have "PRODUCER" slave processes (populating the table queues with their intermediate results) and "CONSUMER" slave processes, using the results of the producers.  

SQL*Plus AUTOTRACE gives you a nice overview of the complete execution plan; otherwise, you might want to use the utlxplp.sql script ($ORACLE_HOME/rdbms/admin).

kind regards,

Lex.



Steve Adams Seminar <http://www.naturaljoin.nl/events/seminars.html> http://www.naturaljoin.nl/events/seminars.html
 

From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of jaromir nemec
Sent: Monday, October 10, 2005 20:41
To: dba.orcl_at_gmail.com; Oracle-L Freelists Subject: Re: Parallel Query & Shared Pool SQL TEXT

Hi Sami,  

> I am sure this is a parallel query.
 

right, this is a parallel slave query  

>All the tablenames are converted into :QXXXX.
 

:Qnnnnnnn is actually not a table name. If parallel slave query access a table, you will see something like this:  

SELECT /*+ NO_EXPAND ROWID(A1) */ . . . . . FROM "<owner>"."<table_name>" PX_GRANULE(0, BLOCK_RANGE, DYNAMIC)   The :Qnnnnnnn is a row set generated by previous slave query. To see the query producing it you must find the original query (i.e. the query of the coordinator).  

If still running use v$px_session, alternatively search V$SQL_PLAN using column object_node. In the execution plan for the query coordinator you will find your original query in the column OTHER. Some other line of execution plan contains in the column OTHER the slave query generating the row set. This could see something like this:  

SELECT /*+ Qnnnnnn NO_EXPAND ROWID(A1) */    

You must examine the whole execution plan to get the context.  

HTH   Jaromir D.B. Nemec

This is the output from v$sql.sql_text:  

I am sure this is a parallel query. All the tablenames are converted into :QXXXX. How to identify the real table name. I have 1000+ such queries are in my shared pool and most of the queries elapsed time is more than 30 mins. I want to find out the actual tablename these queries are running against.      

SELECT A1.C0 C0,A1.C1 C1,A1.C2 C2,A1.C3 C3,A1.C4 C4,A1.C5 C5,A1.C6 C6,A1.C7 C7 ...  

FROM :Q44491002 A4,:Q44491000 A5

WHERE A5.C0=A4.C0) A2,:Q44491001 A3 
WHERE A3.C0=A2.C0)
A1 ORDER BY A1.C0 DESC,A1.C1 DESC,A1.C2 DESC) A1 
WHERE ROWNUM<=15  

How to identify the table name here.


--
http://www.freelists.org/webpage/oracle-l
Received on Mon Oct 10 2005 - 14:01:14 CDT

Original text of this message

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