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

经常会遇到表空间包含自动扩展和不自动扩展的,用以下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;

 

    原文作者:calvin_kang
    原文地址: https://blog.csdn.net/lnwf5188588/article/details/51791933
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞