728x90
[오라클] 테이블스페이스 사용 용량, 여유공간 조회 쿼리
DBA_DATA_FILES, DBA_TEMP_FILES, DBA_FREE_SPACE 뷰를 통해 테이블스페이스의 총 용량, 사용 용량, 여유 용량 및 사용 비율을 계산합니다.
결과는 테이블스페이스 이름, TOTAL(MB), USED(MB), USED(%), FREE(MB), FREE(%) 로 나타납니다.
SELECT a.tablespace_name,
ROUND(SUM(a.bytes) / 1024 / 1024, 2) AS "TOTAL(MB)",
ROUND(SUM(a.bytes - NVL(b.free_bytes, 0)) / 1024 / 1024, 2) AS "USED(MB)",
ROUND((SUM(a.bytes - NVL(b.free_bytes, 0)) / SUM(bytes)) * 100, 2) AS "USED(%)",
ROUND(SUM(NVL(b.free_bytes, 0)) / 1024 / 1024, 2) AS "FREE(MB)",
ROUND((1-SUM(a.bytes - NVL(b.free_bytes, 0)) / SUM(bytes)) * 100, 2) AS "FREE(%)"
FROM (
SELECT
tablespace_name,
SUM(bytes) AS bytes
FROM dba_data_files
GROUP BY tablespace_name
UNION ALL
SELECT
tablespace_name,
SUM(bytes) AS bytes
FROM dba_temp_files
GROUP BY tablespace_name
) a
,(
SELECT
tablespace_name,
SUM(bytes) AS free_bytes
FROM dba_free_space
GROUP BY tablespace_name
) b
where a.tablespace_name = b.tablespace_name
GROUP BY a.tablespace_name;
특정 테이블스페이스의 용량을 확인하려면 WHERE 절을 추가하여 해당 테이블스페이스의 이름을 지정하면 됩니다.
300x250