根据metalink脚本学习undo(四)

下面这个脚本是显示哪些活动事务占用undo空间

set lines 200
set pages 999
clear col


set termout off
set trimout on
set trimspool on




REM
REM  Current transactions
REM
REM  Will show only last transaction by a user
REM
REM  May need to use 786472.1 for better picture 
REM  of activity


connect / as sysdba
alter session set nls_date_format='dd-Mon-yyyy hh24:mi';




col username format a10 wrapped heading "User"
col name format a22 wrapped heading "Undo Segment Name"
col xidusn heading "Undo|Seg #"
col xidslot heading "Undo|Slot #"
col xidsqn heading "Undo|Seq #"
col ubafil heading "File #"
col ubablk heading "Block #"
col start_time format a10 word_wrapped heading "Started"
col status format a8 heading "Status"
col blk format 999,999,999 heading "KBytes"
col used_urec heading "Rows"


col username format a10
col OSUSER format a10
col MACHINE format a10
col SQL_ID format a10
col SQL_TEXT format a30


spool undoactivity.out


prompt
prompt  ############## RUNTIME ############## 
prompt


col rdate head "Run Time"


select sysdate rdate from dual;


prompt
prompt  ############## Current Uncommitted Transactions ############## 
prompt


select start_time,  --事务起始时间
       username,    --用户名
       s.MACHINE,   --机器名称
       s.OSUSER,    --登录名
       r.name,      --回滚段名称
       ubafil,      --Undo block address (UBA) filenum
       ubablk,      --UBA block number
       t.status,    --回话状态
       (used_ublk * p.value) / 1024 blk, --使用的回滚段空间
       used_urec,   --使用的undo 记录 ,
       s1.SQL_ID,    --sql_id
       s1.SQL_TEXT   --sql文本
  from v$transaction t, v$rollname r, v$session s, v$parameter p,v$sql s1
 where xidusn = usn
   and s.saddr = t.ses_addr
   and p.name = 'db_block_size' 
   and s.SADDR=s1.ADDRESS(+)
 order by 1;


set termout on
set trimout off
set trimspool off
clear col




你可能感兴趣的:(根据metalink脚本学习undo(四))