「Oracle21c」Oracleの表領域の容量を確認する方法
環境
Windows 11 Pro 21H2 64bit
Oracle Database 21c Express Edition Release 21.0.0.0.0
Windows 11 Pro 21H2 64bit
Oracle Database 21c Express Edition Release 21.0.0.0.0
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;
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;
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;
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;
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行が選択されました。
表領域 ファイル容量(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行が選択されました。
表領域 ファイル容量(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行が選択されました。