抄来的,记一下:
SELECT c.tablespace_name "表空间",
ROUND(a.bytes / 1048576, 2) "表空间大小",
ROUND((a.bytes - b.bytes) / 1048576, 2) "已使用空间",
ROUND(b.bytes / 1048576, 2) "剩余空间",
ROUND(b.bytes / a.bytes * 100, 2) || '%' "剩余百分比"
FROM (SELECT tablespace_name, SUM(a.bytes) bytes
FROM sys.DBA_DATA_FILES a
GROUP BY tablespace_name) a,
(SELECT a.tablespace_name, NVL(SUM(b.bytes), 0) bytes
FROM sys.DBA_DATA_FILES a, sys.DBA_FREE_SPACE b
WHERE a.tablespace_name = b.tablespace_name(+)
AND a.file_id = b.file_id(+)
GROUP BY a.tablespace_name) b,
sys.DBA_TABLESPACES c
WHERE a.tablespace_name = b.tablespace_name(+)
AND a.tablespace_name = c.tablespace_name
ORDER BY ROUND(b.bytes / 1048576, 2);