This tip comes from Andrew Allen, Sr. DBA at Handleman Company, in Troy, MI.
Description: Sometimes we need (or want) to know who is using rollback and how mUCh they are using. This script will show you who is using which rbs, how much rollback they are using, their sid/serial, and, optionally, when their session began and when they were last active in the database. Run from terminal monitor. SET termout ON SET heading ON SET PAGESIZE 60 SET LINESIZE 126 COLUMN pgm_notes FORMAT a80 HEADING 'Notes' COLUMN rbs FORMAT a8 HEADING 'RBS' JUST center COLUMN Oracle_user FORMAT a12 HEADING 'OracleUsername' COLUMN sid_serial FORMAT a12 HEADING 'SID,Serial' COLUMN unix_pid FORMAT a6 HEADING 'O/SPID' COLUMN Client_User FORMAT a20 HEADING 'ClientUsername' COLUMN Unix_user FORMAT a12 HEADING 'O/SUsername' COLUMN login_time FORMAT a17 HEADING 'Login Time' COLUMN last_txn FORMAT a17 HEADING 'Last Active' COLUMN undo_kb FORMAT 99,999,999 HEADING 'Undo KB' TTITLE CENTER 'Who/What is Using Which RBS' - skip Center '~~~~~~~~~~~~~~~~~~~~~~~~~~~' - skip 2 repfooter off BTitle off SELECT r.name rbs, nvl(s.username, 'None') oracle_user, s.osuser client_user, p.username unix_user, to_char(s.sid)','to_char(s.serial#) as sid_serial, p.spid unix_pid, -- TO_CHAR(s.logon_time, 'mm/dd/yy hh24:mi:ss') as login_time, -- TO_CHAR(sysdate - (s.last_call_et) / 86400,'mm/dd/yy hh24:mi:ss') as last_txn, t.used_ublk * TO_NUMBER(x.value)/1024 as undo_kb FROM v$process p, v$rollname r, v$session s, v$transaction t, v$parameter x WHERE s.taddr = t.addr AND s.paddr = p.addr(+) AND r.usn = t.xidusn(+) AND x.name = 'db_block_size' ORDER BY r.name
|