Nov 3, 2008

Several sql using to check tablespace usage

--I will add my comments when I'm free:)

select t.tablespace_name, round(t.free) free, f.extended_size, f.max_size,round((extended_size-free)*100/max_size,1) "pct_used%"
from (SELECT tablespace_name, SUM(bytes / 1024 / 1024) free
FROM DBA_FREE_SPACE
group by tablespace_name) t
join (select tablespace_name,
--file_name,
sum(bytes / (1024 * 1024)) as extended_size,
sum(greatest(maxbytes, bytes) / 1024 / 1024) as max_size
from dba_data_files
group by tablespace_name) f on t.tablespace_name =
f.tablespace_name
where (extended_size-free)/max_size >0
order by 1,5;

select * from dba_free_space

select tablespace_name,
file_name,
bytes / (1024 * 1024) as extended_size,
greatest(maxbytes, bytes) / 1024 / 1024 as max_size
from dba_data_files
order by 1

select * from dba_tablespaces

select q2.other_tname ts_name, pieces, ts_size ts_size,
nvl(largest_chunk,0) largestpc, nvl(total_free,0) totalfree,
nvl(round((total_free/ts_size)*100,2),0) pct_free,
ts_size-total_free whatsused,
nvl(100-round((total_free/ts_size)*100,2),100) pct_used,
decode(nvl(100-round((total_free/ts_size)*100,0),100),
85,'+',86,'+',87,'+',88,'+',89,'++',90,'++',91,'++',
92,'++',93,'++',94,'+++',95,'+++',96,'+++',97,'++++',
98,'+++++',99,'+++++',100,'+++++','') problem
from (select dfs.tablespace_name,count(*) pieces,
round(max(dfs.bytes)/1024/1024,2) largest_chunk,
round(sum(dfs.bytes)/1024/1024,2) total_free
from dba_free_space dfs group by tablespace_name) q1,
(select tablespace_name other_tname,
round(sum(ddf2.bytes)/1024/1024,2) ts_size
from dba_data_files ddf2 group by tablespace_name) q2
where q2.other_tname = q1.tablespace_name(+)
order by nvl(100-round((total_free/ts_size)*100,0),100) desc;


No comments:

Post a Comment