You are on page 1of 2

select TABLESPACE_NAME, BYTES_USED, BYTES_FREE from V$TEMP_SPACE_HEADER;

select TABLESPACE_NAME, used_blocks, TOTAL_BLOCKS, FREE_BLOCKS from v$sort_segment;

set lines 200


set pages 1000

select * from(
select * from(
select a.TABLESPACE_NAME,
(sum(a.bytes)/1024/1024) "TOTAL SPACE MB",
round(((sum(a.bytes) - b.bytes_free)/(sum(a.bytes))*100), 2) "% USED",
(b.bytes_free/1024/1024) "FREE SPACE MB",
round((b.bytes_free/sum(a.bytes))*100, 2) "% FREE",
(sum(a.bytes) - b.bytes_free)/1024/1024 "USED SPACE"
from
dba_data_files a
inner join
(select tablespace_name, sum(bytes) bytes_free
from dba_free_space
group by tablespace_name
order by BYTES_FREE) b
on a.TABLESPACE_NAME = b.TABLESPACE_NAME
group by a.TABLESPACE_NAME, b.bytes_free
order by a.TABLESPACE_NAME)
UNION ALL
(SELECT A.tablespace_name,
round(D.mb_total,2) "TOTAL SPACE MB",
round(((SUM(A.used_blocks * D.block_size)/1024/1024)/d.mb_total)*100,2)
"% USED",
round((D.mb_total-SUM(A.used_blocks * D.block_size)/1024/1024),2) "FREE
SPACE MB",
round(((D.mb_total-SUM(A.used_blocks *
D.block_size)/1024/1024)/d.mb_total)*100,2) "% FREE",
round((SUM(A.used_blocks * D.block_size)/1024/1024),2) "USED SPACE"
FROM v$sort_segment A,
(
SELECT B.name, round(C.block_size, 2) block_size,
round((SUM(C.bytes)/1024/1024),2) mb_total
FROM v$tablespace B, v$tempfile C
WHERE B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total)
)
ORDER BY 3 desc;

*****

SELECT A.tablespace_name,
D.mb_total "TOTAL SPACE MB",
((SUM(Z.value * D.block_size)/1024/1024)/d.mb_total)*100 "% USED",
D.mb_total-SUM(Z.value * D.block_size)/1024/1024 "FREE SPACE MB",
((D.mb_total-SUM(Z.value * D.block_size)/1024/1024)/d.mb_total)*100 "% FREE",
SUM(Z.value * D.block_size)/1024/1024 "USED SPACE"
FROM V$TEMP_SPACE_HEADER A,
(select value from v$parameter where name = 'db_block_size') Z,
(
SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
FROM v$tablespace B, v$tempfile C
WHERE B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;

You might also like