DB (테이블스페이스) 용량 확인

아래 3가지 DPV(Dynamic Performance View) 논리적인 이해 노력은 데이터 저장 구조 및 DBA 업무 진행에 도움이 되었습니다.

DPV별 주요  POINT 와 용량 확인 쿼리를 기입해 봅니다.

 

[1] DBA_TABLESPACE

① EXTENT MANAGEMENT 
 : LOCAL or DICTIONARY ( 익스텐트 할당과 해제, LOCAL이 우수 )
② SEGMENT SPACE MANAGEMENT 
 : AUTO or MANUAL ( 공간 할당과 해제 AUTO Bitmap, Manual Freelist와 FreelistGroup 관리 )
③ ALLOCATION_TYPE 
 : AUTOALLOCATE or UNIFORM SIZE ( Extent 크기를 DB 자동 할당, 수기 지정 )

 

[2] DBA_DATA_FILE

: DATA FILE의 크기와 확장 가능한 MAX 크기 확인 가능. DATA FILE의 크기는 실 데이터 크기를 의미하는 것은 아니다.
  데이터 0건 이지만, FILE 크기를 미리 확장 할 수 있다. 
① BYTES : DATA FILE의 크기
② AUTOEXTENSIBLE : 파일의 크기(BYTES)를 초과하여 파일최대 크기 (MAXBYTES)까지 확장 가능 여부
③ MAXBYTES : 파일이 확장 가능한  최대 크기 ( 사용자 지정 가능 )
④ INCREMENT_BY : 데이터 파일이 확장될 때마다 증가하는 크기 = BLOCK 개수

 

[3] DBA_FREE_SPACE

: DAFILE에서 사용되지 않은 용량과 BLOCK을 확인 할 수 있다.

 

[4] 용량 확인 SQL 

SELECT ( SELECT NAME FROM V$DATABASE ) DBNAME
      , A.TABLESPACE_NAME AS TABLESPACE
      , A.TSSUM AS "TOTAL(MB)"
      , ROUND(B.FREESUM,2)  AS "FREE(MB)"
      , ROUND(( A.TSSUM - B.FREESUM ),2) AS "USED_SIZE(MB)"
      , ROUND(100 - ( B.FREESUM/A.TSSUM ) * 100,2) AS "USED(%)"
FROM 
(  
     SELECT TABLESPACE_NAME 
          , SUM(BYTES/1024/1024) TSSUM
       FROM DBA_DATA_FILES 
      GROUP BY TABLESPACE_NAME 
) A 
, 
(
    SELECT TABLESPACE_NAME
         , SUM(BYTES/1024/1024) FREESUM 
         , MAX(BYTES/1024/1024) MAXFREE 
     FROM DBA_FREE_SPACE 
     GROUP BY TABLESPACE_NAME
) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
ORDER BY "USED(%)" DESC;