「Oracle21c」Oracle表領域のサイズ使用状況を確認する方法

環境
Windows 11 Pro 21H2 64bit
Oracle Database 21c Express Edition Release 21.0.0.0.0

SQL構文

SELECT 
    AA.TABLESPACE_NAME "表領域"
   ,ROUND(BB.SS /1024/1024,1) "ファイル容量(MB)"
  ,ROUND(CC.SS /1024/1024,1) "空き容量(MB)"
,    DECODE(BB.SS-CC.SS,NULL,100,ROUND((BB.SS-CC.SS)/BB.SS * 100,2)) "使用率"
FROM
DBA_TABLESPACES AA
LEFT OUTER JOIN 
(
  SELECT SUM(BYTES) SS,TABLESPACE_NAME FROM DBA_DATA_FILES
  GROUP BY TABLESPACE_NAME
) BB
ON AA.TABLESPACE_NAME = BB.TABLESPACE_NAME
LEFT OUTER JOIN
(
  SELECT SUM(BYTES) SS,TABLESPACE_NAME FROM DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME ORDER BY TABLESPACE_NAME
) CC
ON AA.TABLESPACE_NAME = CC.TABLESPACE_NAME
ORDER BY BB.SS DESC NULLS LAST;

説明

DBA_TABLESPACES 表領域の情報のテーブル
DBA_DATA_FILES 表領域毎のサイズのテーブル
DBA_FREE_SPACE 表領域毎の空き情報のテーブル

Oracleの表領域の容量は「DBA_DATA_FILES」の「BYTES」で取得します。
空き領域は「DBA_FREE_SPACE」の「BYTES」で取得します。
操作例

SQL> COLUMN 表領域  FORMAT A30
SQL> COLUMN ファイル容量(MB) FORMAT "9999999990"
SQL> COLUMN 空き容量(MB) FORMAT "9999999990"
SQL> COLUMN 使用率 FORMAT "990"
SQL> SELECT
  2      AA.TABLESPACE_NAME "表領域"
  3     ,ROUND(BB.SS /1024/1024,1) "ファイル容量(MB)"
  4    ,ROUND(CC.SS /1024/1024,1) "空き容量(MB)"
  5  ,    DECODE(BB.SS-CC.SS,NULL,100,ROUND((BB.SS-CC.SS)/BB.SS * 100,2)) "使用率"
  6  FROM
  7  DBA_TABLESPACES AA
  8  LEFT OUTER JOIN
  9  (
 10    SELECT SUM(BYTES) SS,TABLESPACE_NAME FROM DBA_DATA_FILES
 11    GROUP BY TABLESPACE_NAME
 12  ) BB
 13  ON AA.TABLESPACE_NAME = BB.TABLESPACE_NAME
 14  LEFT OUTER JOIN
 15  (
 16    SELECT SUM(BYTES) SS,TABLESPACE_NAME FROM DBA_FREE_SPACE
 17    GROUP BY TABLESPACE_NAME ORDER BY TABLESPACE_NAME
 18  ) CC
 19  ON AA.TABLESPACE_NAME = CC.TABLESPACE_NAME
 20  ORDER BY BB.SS DESC NULLS LAST;

実行結果

表領域                         ファイル容量(MB) 空き容量(MB) 使用率
------------------------------ ---------------- ------------ ------
SYSTEM                                     1340            1    100
SYSAUX                                      650           38     94
CFTTABSPA                                   160          158      1
UNDOTBS1                                    110           97     12
USERS                                         5            2     54
TEMP                                                            100

6行が選択されました。

 

Oracle 12c

Posted by arkgame