「Oracle21c」Oracleの表領域の容量を確認する方法
環境
Windows 11 Pro 21H2 64bit Oracle Database 21c Express Edition Release 21.0.0.0.0
構文
1.SELECT ROUND(BYTES / 単位, xxx) FROM DBA_DATA_FILES
Oracleの表領域の容量は「DBA_DATA_FILES」の「BYTES」で取得します。
2. SELECT SUM(BYTES) SS FROM DBA_FREE_SPACE
Oracleの空き領域の容量は「DBA_FREE_SPACE」の「BYTES」で取得します。
SQL構文
SELECT TA.TABLESPACE_NAME "表領域" , ROUND(BYTES / 1024 / 1024, 1) "ファイル容量(M)" , ROUND(NVL(SS, 0) / 1024 / 1024, 1) "空き容量(M)" , ROUND(((BYTES - NVL(SS, 0)) / 1024) / (BYTES / 1024) * 100, 1) "使用率(%)" FROM DBA_DATA_FILES TA LEFT JOIN ( SELECT SUM(BYTES) SS ,TABLESPACE_NAME , FILE_ID FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME , FILE_ID ) TB ON TA.TABLESPACE_NAME = TB.TABLESPACE_NAME AND TA.FILE_ID = TB.FILE_ID ORDER BY TB.SS DESC NULLS LAST;
操作例
SQL> SELECT 2 TA.TABLESPACE_NAME "表領域" 3 , ROUND(BYTES / 1024 / 1024, 1) "ファイル容量(M)" 4 , ROUND(NVL(SS, 0) / 1024 / 1024, 1) "空き容量(M)" 5 , ROUND(((BYTES - NVL(SS, 0)) / 1024) / (BYTES / 1024) * 100, 1) "使用率(%)" 6 FROM 7 DBA_DATA_FILES TA 8 LEFT JOIN ( 9 SELECT 10 SUM(BYTES) SS 11 ,TABLESPACE_NAME 12 , FILE_ID 13 FROM 14 DBA_FREE_SPACE 15 GROUP BY 16 TABLESPACE_NAME 17 , FILE_ID 18 ) TB 19 ON TA.TABLESPACE_NAME = TB.TABLESPACE_NAME 20 AND TA.FILE_ID = TB.FILE_ID 21 ORDER BY TB.SS DESC NULLS LAST;
実行結果
表領域 ファイル容量(M) 空き容量(M) 使用率(%) ------------------------------ --------------- ----------- ---------- CFTTABSPA 110 109 .9 UNDOTBS1 110 96.4 12.3 CFTTABSPA 50 49 2 SYSAUX 650 38 94.2 USERS 5 2.3 53.8 SYSTEM 1340 .6 100 6行が選択されました。