PC · IT · DB/Oracle

[오라클] 테이블스페이스 사용 용량, 여유공간 조회 쿼리

뿌레도 2023. 9. 1. 23:58
728x90

[오라클] 테이블스페이스 사용 용량, 여유공간 조회 쿼리

 DBA_DATA_FILES, DBA_TEMP_FILES, DBA_FREE_SPACE 뷰를 통해 테이블스페이스의 총 용량, 사용 용량, 여유 용량 및 사용 비율을 계산합니다.

 

 결과는 테이블스페이스 이름, TOTAL(MB), USED(MB), USED(%), FREE(MB), FREE(%) 로 나타납니다.

tablespace.sql
0.00MB

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