SPACE "SUM_SPACE(M)",
BLOCK SSUM_BLOCKS,
SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",
ROUND((1 - NVL(FREE_SPACE,0) /SPACE)* 100, 2) "USED_RATE(%)",
FREE_SPACE "FREE_SPACE(M)"
FROM( SELECTTABLESPACE_NAME,
ROUND (SUM(BYTES)/(1024 * 1024),2) SPACE,
SUM (BLOCKS) BLOCKS
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
( SELECT TABLESPACE_NAME,
ROUND (SUM(BYTES)/(1024 * 1024),2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUPBY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME =F.TABLESPACE_NAME(+)
ORDER BY "USED_RATE(%)" DESC;