select t.tablespace_name, t.mb "TotalMB", t.mb - nvl(f.mb,0) "UsedMB", 
nvl(f.mb,0) "FreeMB"       
,lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used", t.ext 
"Ext",        
'|'||rpad(lpad('#',ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*20),'#'),20,' 
')||'|' "Used"from (  select tablespace_name, trunc(sum(bytes)/1048576) MB  
from dba_free_space  group by tablespace_name union all  select 
tablespace_name, trunc(sum(bytes_free)/1048576) MB  from v$temp_space_header  
group by tablespace_name) f, (  select tablespace_name, 
trunc(sum(bytes)/1048576) MB, max(autoextensible) ext  from dba_data_files  
group by tablespace_name union all  select tablespace_name, 
trunc(sum(bytes)/1048576) MB, max(autoextensible) ext  from dba_temp_files  
group by tablespace_name) twhere t.tablespace_name = f.tablespace_name (+)  and 
t.tablespace_name not in (select tablespace_name from dba_tablespaces where 
contents in ('TEMPORARY','UNDO'))order by t.tablespace_name;

Utilizo a consulta acima para monitorar as tablespaces, gostaria de adicionar 
um filtro no qual só trouxesse as tablespaces com 90% de utilização ou mais, me 
baseando na coluna 
lpad(ceil((1-nvl(f.mb,0)/decode(t.mb,0,1,t.mb))*100)||'%', 6) "% Used"

Alguém poderia ajudar?

Responder a