Oracle 表空间的剩余空间

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第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

猜你喜欢

转载自blog.csdn.net/aganliang/article/details/85269970