--表空间剩余空间查询,以system用户身份登录或具有DBA权限的用户执行:
select tbs as 表空间名称,
sum(totalM) as 空间合计M,
sum(usedM) as 已使用空间,
sum(remainedM) as 剩余空间M,
sum(usedM) / sum(totalM) * 100 as 已使用空间百分比,
sum(remainedM) / sum(totalM) * 100 as 剩余空间百分比
from (select b.file_id id,
b.tablespace_name as tbs,
b.file_name as name,
b.bytes / 1024 / 1024 as totalM,
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 as usedM,
sum(nvl(a.bytes, 0)) / 1024 / 1024 as remainedM,
sum(nvl(a.bytes, 0)) / (b.bytes) * 100 as 剩余百分比,
(100 - (sum(nvl(a.bytes, 0)) / (b.bytes) * 100)) as 已使用百分比
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_name, b.file_id, b.bytes
order by b.tablespace_name)
group by tbs;
select tbs as 表空间名称,
sum(totalM) as 空间合计M,
sum(usedM) as 已使用空间,
sum(remainedM) as 剩余空间M,
sum(usedM) / sum(totalM) * 100 as 已使用空间百分比,
sum(remainedM) / sum(totalM) * 100 as 剩余空间百分比
from (select b.file_id id,
b.tablespace_name as tbs,
b.file_name as name,
b.bytes / 1024 / 1024 as totalM,
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 as usedM,
sum(nvl(a.bytes, 0)) / 1024 / 1024 as remainedM,
sum(nvl(a.bytes, 0)) / (b.bytes) * 100 as 剩余百分比,
(100 - (sum(nvl(a.bytes, 0)) / (b.bytes) * 100)) as 已使用百分比
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_name, b.file_id, b.bytes
order by b.tablespace_name)
group by tbs;