您的位置:首页 > 数据库

一条sql查询包含自动扩展和不自动扩展表空间使用率

2016-06-30 17:20 281 查看
经常会遇到表空间包含自动扩展和不自动扩展的,用以下sql可以满足两种都有的查询:

select tbs_used_info.tablespace_name,

       tbs_used_info.alloc_mb,

       tbs_used_info.used_mb,

       tbs_used_info.max_mb,

       tbs_used_info.free_of_max_mb,

       tbs_used_info.used_of_max || '%' used_of_max_pct

  from (select a.tablespace_name,

               round(a.bytes_alloc / 1024 / 1024) alloc_mb,

               round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024) used_mb,

               round((a.bytes_alloc - nvl(b.bytes_free, 0)) * 100 /

                     a.maxbytes) used_of_max,

               round((a.maxbytes - a.bytes_alloc + nvl(b.bytes_free, 0)) /

                     1048576) free_of_max_mb,

               round(a.maxbytes / 1048576) max_mb

          from (select f.tablespace_name,

                       sum(f.bytes) bytes_alloc,

                       sum(decode(f.autoextensible,

                                  'YES',

                                  f.maxbytes,

                                  'NO',

                                  f.bytes)) maxbytes

                  from dba_data_files f

                 group by tablespace_name) a,

               (select f.tablespace_name, sum(f.bytes) bytes_free

                  from dba_free_space f

                 group by tablespace_name) b

         where a.tablespace_name = b.tablespace_name(+)) tbs_used_info

 order by tbs_used_info.used_of_max desc;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: