select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%"
from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name
2、看到free过低,那么就是空间大小问题
(1)、先找到对应表空间路径
select file_name,bytes/1024/1024 size_mb from dba_data_files;
(2)、修改表空间大小
//把DATAFILE 后面的路径修改成(1)步骤查出来对应比较小的表空间的路径
ALTER DATABASE DATAFILE '/path/to/your/datafile.dbf' RESIZE 10G;