Oracle 21c SQL構文で表領域のサイズを確認する

環境
OS windows11 pro 64bit
Oracle Database 21c Express Edition

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

SQL構文

SELECT
   S.TABLESPACE_NAME 表領域
  , ROUND(SUM(BYTES) / 1024 / 1024, 1) "ファイル容量"
  , ROUND(SUM(BYTES - SUM_BYTES) / 1024 / 1024, 1) "使用容量"
  , ROUND(SUM(SUM_BYTES) / 1024 / 1024, 1) "空き容量"
FROM
  DBA_DATA_FILES S
  LEFT JOIN  ( 
    SELECT
      TABLESPACE_NAME
      , FILE_ID
      , NVL(SUM(BYTES), 0) SUM_BYTES
    FROM
      DBA_FREE_SPACE 
    GROUP BY
      TABLESPACE_NAME
      , FILE_ID
  ) T 
    ON  S.TABLESPACE_NAME = T.TABLESPACE_NAME 
    AND S.FILE_ID = T.FILE_ID 
GROUP BY
  S.TABLESPACE_NAME 
ORDER BY
  1;

実行結果

表領域  ファイル容量 使用容量 空き容量
TABSP   4300      3885.6   424.4

 

Oracle 21c

Posted by arkgame