Script To check what UNDO space is available

Script To check what UNDO space is available
===================================

select /*+ rule */ segs.tablespace_name, segs.segment_type, df.bytes/1024/1024 ts_mb , nvl(usegs.bytes,0)/1024/1024 active_unexp_mb, 
nvl(fs.bytes,0)/1024/1024 free_mb, 
round(decode(segment_type,'ROLLBACK',nvl(fs.bytes,0)/df.bytes*100, 
'TYPE2 UNDO',round((df.bytes-nvl(usegs.bytes,0))/df.bytes*100))) usable_pct, 
round(nvl(fs.bytes,0)/df.bytes*100) ts_free_pct 
from (select /*+ rule */ distinct tablespace_name, segment_type from dba_segments 
where segment_type in ('ROLLBACK','TYPE2 UNDO')) segs, 
(select /*+ rule */ tablespace_name, sum(bytes) bytes from dba_data_files 
where tablespace_name in (select /*+ rule */ distinct tablespace_name from dba_segments 
where segment_type in ('ROLLBACK','TYPE2 UNDO')) group by tablespace_name) df, 
(select /*+ rule */ tablespace_name, sum(bytes) bytes from dba_undo_extents 
where status in ('ACTIVE','UNEXPIRED') 
group by tablespace_name) usegs, 
(select /*+ rule */ tablespace_name, sum(bytes) bytes from dba_free_space 
where tablespace_name in (select /*+ rule */ distinct tablespace_name from dba_segments 
where segment_type in ('ROLLBACK','TYPE2 UNDO')) group by tablespace_name) fs 
where segs.tablespace_name = df.tablespace_name 
and usegs.tablespace_name (+) = segs.tablespace_name 
and fs.tablespace_name (+) = segs.tablespace_name 
and segs.tablespace_name != 'SYSTEM'; 

Comments

Popular posts from this blog

SQL Tuning Task Creation ORA-13780: SQL statement does not exist.

Shareplex some commands

ORA-1092 : opitsk aborting process