Oracle 查询各表空间使用情况--完善篇


标题: Oracle 查询各表空间使用情况--完善篇

作者:lōττéry©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

前言 :
  之前简单写过"Oracle 查询各个 “表空间/数据文件” 的空间使用比情况",当时只简单用到dba_data_file"总大小"与dba_free_space"剩余大小"来判断空间使用情况 ;
  但当如下2种情况产生的时候 ,以前的脚本不太适用 ;
   1、 DBF设置AUTOEXTENSIBLE='YES'自增长时, 例如:初步分配10G,使用9.9G,原方法使用率 = 9.9/ 10 *100 = 99%,而实际为=9.9 /总( 'smailfile' ≈32 G )*100 = 31%;
   2、 UNDO表空间循环使用,当大部分空间分配状态为UNEXPIRED,EXPIRED时,按照之前方式所算的使用率完全没有参考价值;
 
     针对如上的2中情况 ,在如下sql已做改进.
 
SQL :

SELECT TBSP.TABLESPACE_NAME ,
       TBSP.TOTAL_GB ,
       TBSP.USE_GB ,
       TBSP.TOTAL_GB - TBSP.USE_GB FREE_GB,
       ROUND (TBSP.USE_GB / TBSP.TOTAL_GB * 100 ,2 ) "USE%"
  FROM ( SELECT TOTAL.TABLESPACE_NAME ,
               TOTAL_GB ,
               /*USE.TABLESPACE_NAME IS NULL 表示表空间使用为0'未分配段'*/
               ( CASE WHEN USE.TABLESPACE_NAME IS NULL THEN 0
               /*各UNDO表空间ACTIVE状态USE_GB
               --ACTIVE表示目前仍活跃的事务相关回滚信息;
               --UNEXPIRED表示虽然事务已经结束但回滚信息保留的时间仍未超过实例参数 UNDO_RETENTION所设定的值;
               --EXPIRED表示回滚信息保留时间已超过UNDO_RETENTION所设定的值*/
               WHEN TOTAL.TABLESPACE_NAME IN ( SELECT DISTINCT TABLESPACE_NAME FROM DBA_UNDO_EXTENTS) THEN
               ( SELECT ROUND(NVL(SUM(BLOCKS) * 8 / 1024 / 1024,0), 2) AS "SIZE G" FROM DBA_UNDO_EXTENTS WHERE STATUS = 'ACTIVE'
               AND TABLESPACE_NAME = TOTAL.TABLESPACE_NAME) ELSE USE_GB END ) USE_GB  
          FROM (/*表空间总大小*/
                SELECT TABLESPACE_NAME ,
                       /*自动增长,OS层空间足够时,取MAXBYTES*/
                       ROUND (SUM (( CASE WHEN AUTOEXTENSIBLE = 'YES' THEN MAXBYTES ELSE BYTES END ) / 1024 / 1024 / 1024 ), 2 ) TOTAL_GB
                  FROM DBA_DATA_FILES  
                 GROUP BY TABLESPACE_NAME) TOTAL
          LEFT JOIN ( /*表空间真实使用情况*/
                    SELECT TABLESPACE_NAME ,
                           ROUND (SUM ( BYTES / 1024 / 1024 / 1024), 2 ) USE_GB
                      FROM DBA_SEGMENTS
                     GROUP BY TABLESPACE_NAME) USE
            ON USE.TABLESPACE_NAME = TOTAL.TABLESPACE_NAME) TBSP
UNION ALL ( /*临时表空间使用情况*/
          SELECT TABLESPACE_NAME ,
                  ROUND (TF.TABLESPACE_SIZE / 1024 / 1024 / 1024 , 2) TABLESPACE_NAME ,
                  ROUND ((TF.TABLESPACE_SIZE - TF.FREE_SPACE) / 1024 / 1024 / 1024 , 2 ) USE_GB ,
                  ROUND (TF.FREE_SPACE / 1024 / 1024 / 1024 , 2) FREE_GB ,
                  ROUND ((TF.TABLESPACE_SIZE - TF.FREE_SPACE) /TF.TABLESPACE_SIZE * 100 , 2) "USE%"
             FROM DBA_TEMP_FREE_SPACE TF);

 
视图官方介绍 :
 
提示:
 若想针对各个DBF使用率进行查询,需要完善例如DBA_SEGMENTS.HEADER_FILE = DBA_DATA_FILES.FILE_ID...等

[转帖]Oracle 查询各表空间使用情况--完善篇的更多相关文章

  1. oracle 查询数据库表空间大小和剩余空间

    dba_data_files:数据库数据文件信息表.可以统计表空间大小(总空间大小). dba_free_space:可以统计剩余表空间大小. 增加表空间即向表空间增加数据文件,表空间大小就是数据文件 ...

  2. 数据库 | Oracle数据库查表空间使用情况

    平时在使用Oracle的时候,如果业务中的数据量激增.数据量变大,很有可能就会有表空间不足的情况,需要重点关注.今天我们分享下如何查看表空间的使用情况. 一.如何查看使用状况 我们废话不说,先直接贴上 ...

  3. 【转】oracle查询用户表,函数,储存过程,

    ◆Oracle查询用户表空间:select * from user_all_tables ◆Oracle查询所有函数和储存过程:select * from user_source ◆Oracle查询所 ...

  4. oracle 全部查询和表空间,以及其关系

    select * from dba_users;   查看数据库里面全部用户,前提是你是有dba权限的帐号.如sys,system select * from all_users;     查看你能管 ...

  5. Oracle系列之表空间

    涉及到表的处理请参看原表结构与数据  Oracle建表插数据等等 创建表空间等等 select tablespace_name from dba_tablespaces;--dba权限用户查询数据库中 ...

  6. 十四、oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  7. 如何让Oracle释放undo表空间

    如何让Oracle释放undo表空间   最佳答案   在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间 ...

  8. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  9. [Oracle]理解undo表空间

    一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...

随机推荐

  1. DRF介绍,DRF项目开发,DRF项目的视图类的dispatch源码解析

    目录 一.DRF介绍 1. 什么是DRF 2. 为什么要用DRF (1)使用DRF的原因 (2)站在开发者的角度来说用DRF的好处(暂时列举这么多) 二.用DRF开发后端项目 三.APIView请求生 ...

  2. 【leetcode】1185. Day of the Week

    题目如下: Given a date, return the corresponding day of the week for that date. The input is given as th ...

  3. 【leetcode】1184. Distance Between Bus Stops

    题目如下: A bus has n stops numbered from 0 to n - 1 that form a circle. We know the distance between al ...

  4. linux-文件系统-5

    cat /proc/partions cat /proc/mounts mount [options] -o [option] -t 文件类型 设备 挂载目录 设备: (1)设备文件:例如/dev/s ...

  5. POJ 2182 Lost Cows (树状数组 && 二分查找)

    题意:给出数n, 代表有多少头牛, 这些牛的编号为1~n, 再给出含有n-1个数的序列, 每个序列的数 ai 代表前面还有多少头比 ai 编号要小的牛, 叫你根据上述信息还原出原始的牛的编号序列 分析 ...

  6. 网络相关辅助类NetUtils

    package yqw.java.util; import java.net.NetworkInterface;import java.util.ArrayList;import java.util. ...

  7. 取值函数(getter)和存值函数(setter)

    todo get和set关键字

  8. Burpsuiet爆破

    burpsuite中intruder标签内attack type四种类型的用法和区别 2016年07月24日 18:13:26 xss_01 阅读数:9802更多 个人分类: burpsuite网络安 ...

  9. android开机引导界面的几种实现

    不少应用在设计的时候都会有几个引导界面,这里总结一下几个典型实现: 之前自己做过仅具有一个引导界面的应用,在welcomeActivity中设置一张图片,更复杂的为该图片设置一个渐入渐出的动画,然后利 ...

  10. Nodejs搭建音视频通信-信令服务器 总结

    1.安装nodejs  node-v10.16.3-x64.msi 2.安装配置环境变量 这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在 ...