查看ORACLE表空间大小及所剩空间大小

来源:互联网 发布:安全数据交换系统 编辑:程序博客网 时间:2024/05/10 15:14

select f.tablespace_name,
       a.total,
       u.used,
       f.free,
       round((u.used / a.total) * 100) "% USED",
       round((f.free / a.total) * 100) "% FREE"
  from (select tablespace_name, sum(bytes / (1024 * 1024)) total
          from dba_data_files
         group by tablespace_name) a,
       (select tablespace_name, round(sum(bytes / (1024 * 1024))) used
          from dba_extents
         group by tablespace_name) u,
       (select tablespace_name, round(sum(bytes / (1024 * 1024))) free
          from dba_free_space
         group by tablespace_name) f
 where a.tablespace_name = f.tablespace_name
   and a.tablespace_name = u.tablespace_name;

 

下面这种方法更快:

select a.tablespace_name,
       a.bytes / 1024 / 1024 "Sum MB",
       (a.bytes - b.bytes) / 1024 / 1024 "used MB",
       b.bytes / 1024 / 1024 "free MB",
       round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used"
  from (select tablespace_name, sum(bytes) bytes
          from dba_data_files
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) bytes, max(bytes) largest
          from dba_free_space
         group by tablespace_name) b
 where a.tablespace_name = b.tablespace_name
 order by ((a.bytes - b.bytes) / a.bytes) desc;

原创粉丝点击