modified on 3 April 2008 at 06:12 ••• 719 views

Get session waits

From Oramosswiki

Jump to: navigation, search
--
--  Change History
--
-- Date         Author             Description
-- ===========  =================  ================================================
-- 03-APR-2008  Jeff Moss          Created
--
column sid heading "SID" format 99999
column seq# heading "Seq" format 99
column event heading "Event" format a25
column p1text heading "Parameter 1" format 999999999999999
column p1 heading "P1|Val" format a25
column p2text heading "Parameter 2" format 999999999999999
column p2 heading "P2|Val" format a25
column p3text heading "Parameter 3" format 999999999999999
column p3 heading "P3|Val" format a25
column wait_time heading "Wait|Time" format 999999
column wait_count heading "Wait|Count" format 999999
column wait_class heading "Wait|Class" format a15
column file_name heading "Filename" format a45
break on sid
ACCEPT sid PROMPT 'Please enter QCSID: '
WITH sids AS
(
select sid from v$px_session where qcsid=&sid
union all
select sid from v$session where sid=&sid
)
, ddf AS
(
select name file_name
,      file# file_id
,      'D' file_type
from   v$datafile
union all
select name
,      file#
,      'T'
from   v$tempfile
)
, ddf2 AS
(
select (select to_char(value) db_files from   v$parameter where  name = 'db_files') db_files
,      ddf.file_name
,      ddf.file_id
,      ddf.file_type
from   ddf
)
select swh.sid
,      swh.seq#
,      swh.event
,      swh.p1text
,      swh.p1
,      swh.p2text
,      swh.p2
,      swh.p3text
,      swh.p3
,      swh.wait_time
,      swh.wait_count
,      en.wait_class
,      ddf2.file_name
from   sids
,      v$session_wait_history swh
,      v$event_name en
,      ddf2
where  swh.event# = en.event#
and    (case when ddf2.file_type(+) = 'T' 
             then (swh.p1 - ddf2.db_files(+))
             else swh.p1 
              end) = NVL(ddf2.file_id(+),-1)
and    sids.sid = swh.sid
order by swh.sid
,        swh.seq#
/