Oracle の表領域を表示する SQL

  SYSDBA でのログインが必要。

  • SQL

SELECT
    T.TABLESPACE_NAME "表領域",
    ROUND(T.BYTES / (1024 * 1024), 0) "割当済(MB)",
    ROUND((T.BYTES - SUM(F.BYTES)) / (1024 * 1024), 0) "使用量(MB)",
    ROUND(SUM(F.BYTES) / (1024 * 1024), 0) "空容量(MB)",
    ROUND((1 - SUM(F.BYTES) / T.BYTES) * 100, 2) "使用率(%)"
FROM
    SYS.DBA_FREE_SPACE F,
    (SELECT
        TABLESPACE_NAME,
        SUM(BYTES) BYTES
     FROM
        SYS.DBA_DATA_FILES
     GROUP BY
        TABLESPACE_NAME
     ) T
WHERE
    T.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
GROUP BY
    T.TABLESPACE_NAME,
    T.BYTES
/

  • 出力

表領域                         割当済(MB) 使用量(MB) 空容量(MB)  使用率(%)
------------------------------ ---------- ---------- ---------- ----------
SYSAUX                                560        544         16      97.11
USERS                                2640       1151       1489      43.59
SYSTEM                                400        361         39      90.17
UNDO                                  500         10        491        1.9


- ref.: Oracle Technology Network (OTN) Japan - 掲示板 : 表領域の使用率確認 ...
  http://otn.oracle.co.jp/forum/message.jspa?messageID=8087948