select tbs 表空间名,
sum(totalM) 总共大小M,
sum(usedM) 已使用空间M,
sum(remainedM) 剩余空间M,
sum(usedM)/sum(totalM)*100 已使用百分比,
sum(remainedM)/sum(totalM)*100 剩余百分比
from (
select b.FILE_ID ID,
b.TABLESPACE_NAME tbs,
b.FILE_NAME name,
b.BYTES/1024/1024 totalM,
(b.BYTES - sum(nvl(a.BYTES,0)))/1024/1024 usedM,
sum(nvl(a.BYTES,0))/1024/1024 remainedM,
sum(nvl(a.BYTES,0))/(b.BYTES)*100 剩余百分比,
(100 - sum(nvl(a.BYTES,0))/(b.BYTES)*100) 已使用百分比
from dba_free_space a,dba_data_files b
where a.FILE_ID=b.FILE_ID ----也可以指定查询某一个表空间 a.tablespace_name ='my_001'
group by b.TABLESPACE_NAME,b.FILE_NAME,b.FILE_ID,b.BYTES
order by b.TABLESPACE_NAME
)
group by tbs
NVL函数的格式如下:NVL(expr1,expr2)
含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。