【Oracle】并行等待之PX Deq: Signal ACK

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件!

Waiting Process:QC

QC 进程想slaves 进程发送控制信息并期待slaves 进程的回复 

QC 进程发送一个控制信息给slaves进程。slave 进程必须发送对控制信息的响应。在QC等待获取响应的过程就是“PX Deq: Signal ACK”

v$session_wait 中该等待事件对应的参数:

P1 = sleeptime/senderid

P2 = passes

P3 = not used

我们可以使用如下语句获取转换sleeptime/senderid的相关信息:

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;

passes 等待的次数!

如果P1的值为空,则意味slave 不需要等待任何进程

比如p1的值为268501004,则上面的sql会返回:

Instance = 1

Sender = P012

等待时间:这是一个空闲等待事件,QC正在等待slave 进程的确认信息。可以忽略此等待事件!

时间: 2024-10-01 03:55:06

【Oracle】并行等待之PX Deq: Signal ACK的相关文章

【Oracle】并行等待之PX Deq: Join ACK

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! PX Deq: Join ACK 等待 Waiting Process: QC 当我们执行并行语句的时候,查询协调器会根据并行度来创建slave 集合.协调进程首先会发送给每一个将要被使用的slaves一个join messages ,然后等待slave 进程返回 join 确认信息.如果并行操作需要两个slave 集合此过程会重复一遍! 等待时间:此等待事件是一个非空闲等待事件. 当PARALLEL_AUT

【Oracle】并行等待之PX Deq: Table Q Normal

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! Waiting Processes:Slave 在并行执行环境中我们建立建立producer consumer 模型:  处理数据(比如 从磁盘获取数据并做join 连接)的slave 集叫做producer slave :另外一些等待获取处理结果数据的slave 称为consumer slave .等待事件 "PX Deq: Table Q Normal" 意味着消费者slave进程等待生产者sl

【Oracle】并行等待之PX Deq Credit: send blkd

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! PX Deq Credit: send blkd等待事件: Waiting Process: QC 想发送信息的进程没有credit bit. 进程想发送一个信息但是没有control credit ,进程必须首先发送一个消息去获取credit ,此等待事件以表明接收进程还没有完成前一个消息的处理."PX Deq Credit: send blkd" and "PX Deq Credit:

【Oracle】并行等待之PX Deq Credit: need buffer

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! PX Deq Credit: need buffer等待 QC和slave 之间使用队列进行沟通,每个队列使用buffer存放slave和slave或者slave和QC 之间的信息.队列需要一个creidt 标志位来保证任意时刻只有一个进程能够使用此buffer发送数据信息!一个进程要通过队列发送数据或者响应信息就需要获取credit bit,而credit bit则是通过一个buffer 来发送的.当出现该

【Oracle】并行等待之PX Deq: Execution Msg

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! PX Deq: Execution Msg   该事件是并行查询中的常见事件.当PQ slave进程在等待QC告诉它要做什么的时候就会出现此事件(eg: when waiting to be told parse / execute / fetch etc..) v$session_wait 中该等待事件对应的参数: P1 = sleeptime/senderid P2 = passes P3 = not u

【Oracle】并行等待之PX Deq: Execute Reply

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! Waiting Process: QC 协调器正在等待一个 从slaves 进程对控制信息的响应(确认通知)或者期望从slave进程集中获取数据.这个等待事件意味着QC等待slaves结束执行sql 并且将结果集发送给QC  v$session_wait 中该等待事件对应的参数: P1 = sleeptime/senderid P2 = passes P3 = not used 我们可以使用如下语句获取转换s

【Oracle】并行等待之PX Idle Wait

本系列文章将会介绍在并行操作过程中 slave 进程和 QC 进程经常遇到的等待事件! Waiting Process: Slave 此等待事件说明slave进程是空闲的并且等待QC 进程对其进行调度 执行其他并行操作. v$session_wait 中该等待事件对应的参数: P1 = sleeptime/senderid P2 = passes P3 = not used sleeptime/senderid 我们可以使用如下语句获取转换sleeptime/senderid的相关信息: set

等待事件:PX Deq Credit: send blkd?TOAD ? GV$SESSION

等待事件:PX Deq Credit: send blkd?TOAD ? GV$SESSION     昨天看AWR报表,发现系统出现大量的PX Deq Credit: send blkd等待事件.Event                  Waits Time(s) Avg Wait(ms)  % Total Call Time Wait ClassPX Deq Credit: send blkd  905  1,829   2,021         74.9              O

Oracle OWI 等待事件视图(v$session_wait/v$session_event/v$system_event)

    通常情况下,用户提交一条SQL语句,总会存在这样或那样的等待事件.也就是说由于所需资源被占用导致进程不得不处于等待状态.Oracle为我们提供了获取这些等待事件的可用视图.根据这些视图可以得知哪些事件导致该SQL语句效率低下而采取相应的修改或调整.本文基于Oracle 10g描述了如何通过视图v$session_wait,v$session_event,以及v$system_event去获取等待事件的相关信息.   1.等待事件相关参数  timed_statistics      指定