脚本正文:
col username for a12 col "QC SID" for A6 col "SID" for A6 col "QC/Slave" for A8 col "Req. DOP" for 9999 col "Actual DOP" for 9999 col "Slaveset" for A8 col "Slave INST" for A9 col "QC INST" for A6 set pages 300 lines 300 col wait_event format a30 select decode(px.qcinst_id,NULL,username, ' - '||lower(substr(pp.SERVER_NAME, length(pp.SERVER_NAME)-4,4) ) )"Username", decode(px.qcinst_id,NULL, 'QC', '(Slave)') "QC/Slave" , to_char( px.server_set) "SlaveSet", to_char(s.sid) "SID", to_char(px.inst_id) "Slave INST", decode(sw.state,'WAITING', 'WAIT', 'NOT WAIT' ) as STATE, case sw.state WHEN 'WAITING' THEN substr(sw.event,1,30) ELSE NULL end as wait_event , decode(px.qcinst_id, NULL ,to_char(s.sid) ,px.qcsid) "QC SID", to_char(px.qcinst_id) "QC INST", px.req_degree "Req. DOP", px.degree "Actual DOP" from gv$px_session px, gv$session s , gv$px_process pp, gv$session_wait sw where px.sid=s.sid (+) and px.serial#=s.serial#(+) and px.inst_id = s.inst_id(+) and px.sid = pp.sid (+) and px.serial#=pp.serial#(+) and sw.sid = s.sid and sw.inst_id = s.inst_id order by decode(px.QCINST_ID, NULL, px.INST_ID, px.QCINST_ID), px.QCSID, decode(px.SERVER_GROUP, NULL, 0, px.SERVER_GROUP), px.SERVER_SET, px.INST_ID / set pages 300 lines 300 col wait_event format a30 select sw.SID as RCVSID, decode(pp.server_name, NULL, 'A QC', pp.server_name) as RCVR, sw.inst_id as RCVRINST, case sw.state WHEN 'WAITING' THEN substr(sw.event,1,30) ELSE NULL end as wait_event , decode(bitand(p1, 65535), 65535, 'QC', 'P'||to_char(bitand(p1, 65535),'fm000')) as SNDR, bitand(p1, 16711680) - 65535 as SNDRINST, decode(bitand(p1, 65535), 65535, ps.qcsid, (select sid from gv$px_process where server_name = 'P'||to_char(bitand(sw.p1, 65535),'fm000') and inst_id = bitand(sw.p1, 16711680) - 65535) ) as SNDRSID, decode(sw.state,'WAITING', 'WAIT', 'NOT WAIT' ) as STATE from gv$session_wait sw, gv$px_process pp, gv$px_session ps where sw.sid = pp.sid (+) and sw.inst_id = pp.inst_id (+) and sw.sid = ps.sid (+) and sw.inst_id = ps.inst_id (+) and p1text = 'sleeptime/senderid' and bitand(p1, 268435456) = 268435456 order by decode(ps.QCINST_ID, NULL, ps.INST_ID, ps.QCINST_ID), ps.QCSID, decode(ps.SERVER_GROUP, NULL, 0, ps.SERVER_GROUP), ps.SERVER_SET, ps.INST_ID / set pages 300 lines 300 col "Username" for a12 col "QC/Slave" for A8 col "Slaveset" for A8 col "Slave INST" for A9 col "QC SID" for A6 col "QC INST" for A6 col "operation_name" for A30 col "target" for A30 select decode(px.qcinst_id,NULL,username, ' - '||lower(substr(pp.SERVER_NAME, length(pp.SERVER_NAME)-4,4) ) )"Username", decode(px.qcinst_id,NULL, 'QC', '(Slave)') "QC/Slave" , to_char( px.server_set) "SlaveSet", to_char(px.inst_id) "Slave INST", substr(opname,1,30) operation_name, substr(target,1,30) target, sofar, totalwork, units, start_time, timestamp, decode(px.qcinst_id, NULL ,to_char(s.sid) ,px.qcsid) "QC SID", to_char(px.qcinst_id) "QC INST" from gv$px_session px, gv$px_process pp, gv$session_longops s where px.sid=s.sid and px.serial#=s.serial# and px.inst_id = s.inst_id and px.sid = pp.sid (+) and px.serial#=pp.serial#(+) order by decode(px.QCINST_ID, NULL, px.INST_ID, px.QCINST_ID), px.QCSID, decode(px.SERVER_GROUP, NULL, 0, px.SERVER_GROUP), px.SERVER_SET, px.INST_ID /
示例输出:
Username QC/Slave SlaveSet SID Slave INS STATE WAIT_EVENT QC SID QC INS Req. DOP Actual DOP ------------ -------- -------- ------ --------- -------- ------------------------------ ------ ------ -------- ---------- SCOTT QC 923 1 WAIT db file sequential read 923 - p003 (Slave) 1 935 1 WAIT PX Deq Credit: send blkd 923 1 4 4 - p001 (Slave) 1 961 1 WAIT PX Deq: Execution Msg 923 1 4 4 - p002 (Slave) 1 1035 1 WAIT PX Deq: Execution Msg 923 1 4 4 - p004 (Slave) 1 977 1 WAIT PX Deq Credit: send blkd 923 1 4 4 - p006 (Slave) 2 609 1 WAIT PX Deq: Execution Msg 923 1 4 4 - p007 (Slave) 2 642 1 WAIT PX Deq: Execution Msg 923 1 4 4 - p008 (Slave) 2 970 1 WAIT PX Deq: Execution Msg 923 1 4 4 - p005 (Slave) 2 953 1 WAIT PX Deq: Execution Msg 923 1 4 4 SCOTT QC 1003 1 WAIT SQL*Net message from client 1003 - p015 (Slave) 1 608 1 WAIT PX Deq Credit: send blkd 1003 1 8 8 - p011 (Slave) 1 639 1 WAIT PX Deq Credit: send blkd 1003 1 8 8 - p012 (Slave) 1 1115 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p000 (Slave) 1 1253 1 WAIT PX Deq Credit: send blkd 1003 1 8 8 - p010 (Slave) 1 1420 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p009 (Slave) 1 1421 1 WAIT PX Deq Credit: send blkd 1003 1 8 8 - p014 (Slave) 1 1417 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p013 (Slave) 1 1180 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p020 (Slave) 2 1422 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p023 (Slave) 2 1423 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p018 (Slave) 2 1424 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p021 (Slave) 2 1426 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p019 (Slave) 2 1428 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p016 (Slave) 2 1429 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p022 (Slave) 2 1427 1 WAIT PX Deq: Execution Msg 1003 1 8 8 - p017 (Slave) 2 1425 1 WAIT PX Deq: Execution Msg 1003 1 8 8