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;
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;
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
表領域 ファイル容量 使用容量 空き容量
TABSP 4300 3885.6 424.4
表領域 ファイル容量 使用容量 空き容量 TABSP 4300 3885.6 424.4