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

Oracle の一時表領域を表示する SQL

  SYSDBA でのログインが必要。

  • SQL

SELECT
    DT.TABLESPACE_NAME "表領域",
    ROUND(DT.BYTES / (1024 * 1024), 0) "割当済(MB)",
    ROUND(T.BYTES_CACHED / (1024 * 1024), 0) "空容量(MB)",
    ROUND(T.BYTES_CACHED / DT.BYTES * 100, 2) "使用率(%)"
FROM
    SYS.DBA_TEMP_FILES DT,
    V$TEMP_EXTENT_POOL T,
    V$TEMPFILE V
WHERE
    T.FILE_ID(+)= DT.FILE_ID AND
    DT.FILE_ID = V.FILE#
/

  • 出力

表領域                         割当済(MB) 空容量(MB)  使用率(%)
------------------------------ ---------- ---------- ----------
TEMP                                  528        527      99.81