본문 바로가기
IT/Oracle DB

[Oracle] 테이블스페이스(TableSpace) 용량 확인 가이드

by 직장인W군 2022. 8. 31.
728x90

Oracle Database의 TableSpace 용량 확인하는 방법에 대하여 정리하여 공유합니다.

 


 

■ 개요

 - Oracle Database TableSpace 확인 가이드
 - TableSpace 정보, 용량 등 각종 설정 등 각종 정보 확인
 

 

 

■ TableSpace 정보 확인

 - 쿼리
SELECT * FROM DBA_TABLESPACES;

 

 - 출력화면

 


 

■ TableSpace 파일 관련 정보

 - 쿼리
SELECT * FROM DBA_DATA_FILES ORDER BY file_name;

 

 - 출력화면

 


 

■ TableSpace별 용량 확인

 - 쿼리
SELECT A.TABLESPACE_NAME ,
       ROUND(MAXBYTES/1048576,2) "최대사이즈(MB)",
       ROUND(A.BYTES_ALLOC / 1024 / 1024, 2) "할당용량(MB)",
       ROUND(NVL(B.BYTES_FREE, 0) / 1024 / 1024, 2) "여유용량(MB)",
       ROUND((A.BYTES_ALLOC - NVL(B.BYTES_FREE, 0)) / 1024 / 1024, 2) "사용량(MB)",
       ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) "여유용량(%)",
       100 - ROUND((NVL(B.BYTES_FREE, 0) / A.BYTES_ALLOC) * 100,2) "사용량(%)"
FROM   ( SELECT F.TABLESPACE_NAME,
                SUM(F.BYTES) BYTES_ALLOC,
                SUM(DECODE(F.AUTOEXTENSIBLE, 'YES',F.MAXBYTES,'NO', F.BYTES)) MAXBYTES
         FROM DBA_DATA_FILES F
         GROUP BY TABLESPACE_NAME) A,
               ( SELECT F.TABLESPACE_NAME,
                        SUM(F.BYTES)  BYTES_FREE
                 FROM DBA_FREE_SPACE F
                 GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME (+)
UNION
SELECT TABLESPACE_NAME,
       ROUND(SUM(BYTES_USED + BYTES_FREE) / 1048576, 2),
       ROUND(SUM(BYTES_FREE) / 1048576,2),
       ROUND(SUM(BYTES_USED) / 1048576,2),
       ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) FREE_RATE,
       100 - ROUND((SUM(BYTES_FREE) / SUM(BYTES_USED + BYTES_FREE)) * 100,2) USED_RATE,
       ROUND(MAX(BYTES_USED + BYTES_FREE) / 1048576, 2)
FROM   SYS.V_$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME
ORDER BY 1;

 

 - 출력 화면

 


 

반응형

댓글