如题:

select f.tablespace_name tablespace_name,

round((d.sumbytes / 1024 / 1024 / 1024), 2) total_g,

round(f.sumbytes / 1024 / 1024 / 1024, 2) free_g,

round((d.sumbytes - f.sumbytes) / 1024 / 1024 / 1024, 2) used_g,

round((d.sumbytes - f.sumbytes) * 100 / d.sumbytes, 2) used_percent

from (select tablespace_name, sum(bytes) sumbytes

from dba_free_space

group by tablespace_name) f,

(select tablespace_name, sum(bytes) sumbytes

from dba_data_files

group by tablespace_name

union

select tablespace_name, sum(bytes)

from dba_temp_files

group by tablespace_name) d

where f.tablespace_name = d.tablespace_name

order by d.tablespace_name;