http://www.itpub.net/showthread.php?s=&postid=8170201#post8170201
Subject: WAITEVENT: "PX Deq Credit: send blkd"
Doc ID: Note:271767.1 Type: REFERENCE
Last Revision Date: 21-MAY-2005 Status: PUBLISHED
"PX Deq Credit: send blkd" Reference Note
This is a reference note for the wait event "PX Deq Credit: send blkd" which includes the following subsections:
Brief definition
Individual wait details (eg: For waits seen in ) Systemwide wait details (eg: For waits seen in ) Reducing waits / wait times See Note 61998.1 for an introduction to Wait Events. Definition: @Source Symbol:kxfpdrew Versions:8.1 - 9.2 Documentation:None Waiting Process: QC,Slave The process wishes to send a message and does not have the flow control credit. Process must first dequeue a message to obtain the credit. Indicates that the receiver has not dequeued and/or completely consumed the prior message yet. "PX Deq Credit: send blkd" and "PX Deq Credit: need buffer" are nearly the same. Due to internal reason you see "PX Deq Credit: send blkd" more on local systems and "PX Deq Credit: need buffer" more on RAC systems. This is the same as the "Wait for credit - send blocked"" wait event in Oracle 8.0. Individual Waits: Parameters: P1 = sleeptime/senderid P2 = passes P3 = qref sleeptime/senderid You can decode the senderid with following SQL block set SERVEROUTPUT on undef p1 declare inst varchar(20); sender varchar(20); begin select bitand(&&p1, 16711680) - 65535 as SNDRINST, decode(bitand(&&p1, 65535),65535, 'QC', 'P'||to_char(bitand(&&p1, 65535),'fm000') ) as SNDR into inst , sender from dual where bitand(&&p1, 268435456) = 268435456; dbms_output.put_line('Instance = '||inst); dbms_output.put_line('Sender = '||sender ); end; / If you get no rows back than p1 is a sleeptime. As example senderid/sleeptime = 268501004. Than the script will give Instance = 1 Sender = P012 This means we have to investigate why slave P012 is not fast enough to dequeue the messages and send the blocks. passes Number times we have looped through waiting for a message so far. qref The identifier of the table queue from which we need the buffer. Wait Time: This is considered as idle wait event. You should investigate the sender (decode the senderid). In same cases it is normal that we see high waits on "PX Deq Credit: send blkd". An example: We do a select from a large table in parallel. select /*+ parallel(sales, 10) +/ * from sales) Than you see a lot of waits for "PX Deq Credit: send blkd" in the slave traces. All slaves wait for the QC to get back the credit bit. The QC can not dequeue fast enough the rows from the slaves, beause there are to many slaves that send rows back to the QC. In this case it is normal. Systemwide Waits: There is no general advice to reduce the waitime for this event. Reducing Waits / Wait times: There is no general advice to reduce the waitime for this event. Related: Parallel Query Wait Events Note 191103.1