-- sizeMb == 当前表空间对应物理文件的大小之和 -- maxMb == 可自动扩展到的最大大小 -- freeMb == 不扩展情况下的可用空间 -- maxFreeMb == 扩展情况下的可用空间 -- usedMb == 当前逻辑使用量 select percentused , tablespace_name, sizeMb , maxMb , freeMb , maxMb - usedMb maxFreeMb , usedMb , sysdate from (SELECT NVL( round((d.sizeMb - round(sum(f.bytes)) / 1048576) / (case when d.sizemb > d.maxMb then d.sizeMb else d.maxmb end) * 100) , 100 ) percentused, d.tablespace_name, d.sizeMb, case when d.sizemb > d.maxMb then d.sizeMb else d.maxmb end maxMb, nvl( sum(f.bytes) / 1048576 , 0 ) freeMb, d.sizeMb - round(sum(f.bytes)) / 1048576 usedMb, sysdate from dba_free_space f, (select tablespace_name, sum(decode(maxbytes, 0, bytes, maxbytes)) / 1048576 maxMb, sum(bytes) / 1048576 sizeMb from dba_data_files group by tablespace_name) d where f.tablespace_name(+) = d.tablespace_name group by d.tablespace_name, d.sizeMb, d.maxMb order by percentused desc);