1set linesize 260 pagesize 10000
2column sess format a21 heading "SESSION"
3column program format a18
4column clnt_pid format a8
5column machine format a25
6column username format a12
7column osuser format a13
8column event format a32
9column waitsec format 999999
10column start_time format a18
11column sql_id format a15
12column clnt_user format a10
13column svr_ospid format a10
14
15ALTER SESSION SET NLS_DATE_FORMAT = 'yyyy/mm/dd hh24:mi:ss';
16
17set feedback off
18set echo off
19
20set head off
21select chr(9) from dual;
22select 'Waiting Transactions'||chr(10)||'====================' from dual;
23set head on
24select /*+ rule */
25 lpad(nvl(s.username,' '),8)||'('||s.sid||','||s.serial#||')' as sess,
26 p.spid as svr_ospid,
27 nvl(osuser,' ') as clnt_user,
28 s.process as clnt_pid,
29 substr((case instr(s.PROGRAM, '@')
30 when 0 then
31 s.program
32 else
33 case instr(s.PROGRAM, '(TNS V1-V3)')
34 when 0 then
35 substr(s.program, 1, instr(s.PROGRAM, '@') - 1) || substr(s.program, instr(s.PROGRAM, '(') - 1)
36 else
37 substr(s.program, 1, instr(s.PROGRAM, '@') - 1)
38 end
39 end),
40 1, 18) as program,
41 (case
42 when length(s.MACHINE) > 8 then substr(s.machine,1,8)||'~'
43 else s.machine
44 end
45 ) || '('||nvl(s.client_info, 'Unknown IP')||')' as machine, s.sql_id,
46 substr(s.event, 1, 32) as event,
47 s.seconds_in_wait as waitsec
48 from v$transaction t,v$session s,v$process p
49 where t.ses_addr=s.saddr and s.paddr=p.addr
50 order by s.seconds_in_wait, s.program, s.machine;