Philip Howe’s Oracle Blog

Just another WordPress.com weblog

Posts Tagged ‘v$process’

Rollback Segments

Posted by philiphowe on March 18, 2009

Here are two scripts to help monitor the rollback segments:

select
to_char(rownum+3) ||’) ‘
|| rpad(r.name,17)
|| rpad(to_char(p.pid),11)
|| rpad(p.spid,11)
|| rpad(nvl(p.username,’NO TRANSACTION’),17)
|| rpad(p.terminal,8)
|| rpad(s.sid,4)
|| rpad(s.serial#,8)
|| rpad(s.module,15)
|| rpad(s.command,15)
|| rpad(s.username,15)
FROM
v$lock l, v$process p, v$rollname r, v$session s
WHERE l.sid = s.sid (+)
and p.addr = s.paddr
and trunc(l.id1(+)/65536)=r.usn
and l.type(+) = ‘TX’
and l.lmode(+) = 6
UNION
select ‘2) ROLLBACK SEGMENT ‘
||  ‘ORACLE PID ‘
|| ‘SYSTEM PID ‘
|| ‘TRANSACTION      ‘
|| ‘TERMINAL ‘
|| ‘SID ‘
|| ‘Serial# ‘
|| ‘Module          ‘
|| ‘Command         ‘
|| ‘Username        ‘
from dual
UNION
select ‘1) ‘ from dual
UNION
select ‘3) —————- ‘
||’———- ‘
||’———- ‘
||’—————- ‘
||’——– ‘
||’— ‘
||’——- ‘
||’————– ‘
||’————– ‘
||’————– ‘
from dual
ORDER BY 1
/

Using this select statement you can monitor the Rollback segment usage in Oracle.

select r.name “Rollback segment name “,
p.pid “Oracle Pid”,
p.spid “System Pid”,
nvl(p.username,’No Transaction’),
p.terminal
from v$lock l, v$process p,v$rollname r
where l.sid=p.pid(+)
and trunc(l.id1(+)/65536)=r.usn
and l.type(+)=’TX’
and l.lmode(+)=6
order by r.name
/

Posted in Database | Tagged: , , , , , | Leave a Comment »