Oracle中查看表空间使用率的SQL脚本分享

前端技术 2023/09/04 Oracle

复制代码 代码如下:

/* Formatted on 2012/5/31 14:51:13 (QP5 v5.185.11230.41888) */
SELECT D.TABLESPACE_NAME,
       SPACE || \'M\' \"SUM_SPACE(M)\",
       BLOCKS \"SUM_BLOCKS\",
       SPACE - NVL (FREE_SPACE, 0) || \'M\' \"USED_SPACE(M)\",
       ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || \'%\'
          \"USED_RATE(%)\",
       FREE_SPACE || \'M\' \"FREE_SPACE(M)\"
  FROM (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
                 SUM (BLOCKS) BLOCKS
            FROM DBA_DATA_FILES
        GROUP BY TABLESPACE_NAME) D,
       (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE
            FROM DBA_FREE_SPACE
        GROUP BY TABLESPACE_NAME) F
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
UNION ALL                                                           --如果有临时表空间
SELECT D.TABLESPACE_NAME,
       SPACE || \'M\' \"SUM_SPACE(M)\",
       BLOCKS SUM_BLOCKS,
       USED_SPACE || \'M\' \"USED_SPACE(M)\",
       ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || \'%\' \"USED_RATE(%)\",
       NVL (FREE_SPACE, 0) || \'M\' \"FREE_SPACE(M)\"
  FROM (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
                 SUM (BLOCKS) BLOCKS
            FROM DBA_TEMP_FILES
        GROUP BY TABLESPACE_NAME) D,
       (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
                 ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
            FROM V$TEMP_SPACE_HEADER
        GROUP BY TABLESPACE_NAME) F
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
ORDER BY 1;

效果如下:

本文地址:https://www.stayed.cn/item/9909

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。