Tablespaces and datafiles usage:
select
DTFIL.tablespace_name, DTFIL.file_name,
ROUND(DTFIL.bytes/power(1024,2),2) USED_MB,
DTFIL.autoextensible,
Round(DTFIL.maxbytes/power(1024,3), 2) Maxsize_GB,
Round((DTFIL.bytes / DTFIL.maxbytes)*100, 2) USED,
round((DTFIL.increment_by * TBSP.block_size)/power(1024,2), 2) step_MB,
DTFIL.increment_by
from
dba_data_files DTFIL join dba_tablespaces TBSP on DTFIL.TABLESPACE_NAME = TBSP.TABLESPACE_NAME
order by DTFIL.tablespace_name, DTFIL.file_name;
Tablespaces usage, including datafiles:
select
DTFIL.tablespace_name,
Round((sum(DTFIL.bytes) / sum(DTFIL.maxbytes))*100, 2) USED
from
dba_data_files DTFIL join dba_tablespaces TBSP on DTFIL.TABLESPACE_NAME = TBSP.TABLESPACE_NAME
group by DTFIL.tablespace_name
order by 2 desc;
Tablespaces usage acording with actual allocated space:
-- Work tablespaces
SELECT
a.tablespace_name AS tablespace_name,
(100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc)* 100)) percent_used,
(100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc)* 100, 2)) pct_used,
round(a.bytes_alloc / 1024/ 1024,2) allocated,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024/ 1024,2) used,
round(nvl(b.bytes_free, 0) / 1024/ 1024,2) free,
a.datafiles
from (select
f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible, 'yes', f.maxbytes, 'N0',f.bytes)) maxbytes,
count(1) datafiles
FROM
dba_data_files f
GROUP BY tablespace_name) a,
(SELECT
f.tablespace_name,
SUM(f.bytes) bytes_free
FROM
dba_free_space f
GROUP BY tablespace_name) b
WHERE
a.tablespace_name = b.tablespace_name(+)
UNION ALL
-- TEMP Tablespaces
select
t.tablespace_name,
t.percent_used,
t.pct_used,
t.allocated,
t.used,
t.free,
f.datafiles
from
(select
h.tablespace_name as tablespace_name,
(100 - round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free))* 100)) percent_used,
(100 - round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free))* 100,2)) pct_used,
round(sum(h.bytes_free + h.bytes_used) / 1048576,2) allocated,
round(sum(nvl(p.bytes_used, 0))/ 1048576,2) used,
round(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / 1048576,2) free
from
sys.gv_$TEMP_SPACE_HEADER h,
sys.gv_$Temp_extent_pool p,
dba_temp_files f
where
p.file_id(+) = h.file_id
and p.tablespace_name(+) = h.tablespace_name
and f.file_id = h.file_id
and f.tablespace_name = h.tablespace_name
group by h.tablespace_name ) t,
(select tablespace_name, count(1) datafiles from dba_temp_files group by tablespace_name ) f
where
t.tablespace_name = f.tablespace_name
ORDER BY 3 desc