読者です 読者をやめる 読者になる 読者になる

Corredor

ウェブ、プログラミングの勉強メモ。

Oracle DB で表領域の使用率などを見る

Oracle DB で表領域の使用率などを見るには、以下のような SELECT 文を作れば良い。

SELECT
    d.TABLESPACE_NAME,
    BYTES                             AS "全体量 [MB]",
    ROUND(BYTES - FREE)               AS "使用量 [MB]",
    FREE                              AS "空容量 [MB]",
    ROUND((1 - (FREE / BYTES)) * 100) AS "使用率 [%]"
FROM
    (
        SELECT
            TABLESPACE_NAME,
            ROUND(SUM(BYTES) / (1024 * 1024)) AS BYTES
        FROM
            DBA_DATA_FILES
        GROUP BY
            TABLESPACE_NAME
    ) d
    LEFT JOIN (
        SELECT
            TABLESPACE_NAME,
            ROUND(SUM(BYTES) / (1024 * 1024)) AS FREE
        FROM
            DBA_FREE_SPACE
        GROUP BY
            TABLESPACE_NAME
    ) f
        ON  d.TABLESPACE_NAME = f.TABLESPACE_NAME
ORDER BY
    TABLESPACE_NAME;

最近 DB 触らなくなったなぁ…。