「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行が選択されました。

 

Oracle 21c

Posted by arkgame