Skip to end of metadata
Go to start of metadata

 

 

 

 

 

 

개요


  • ALTIBASE HDB 5.3.3 버전부터는  X$SEGMENT의 TOTAL_USED_SIZE  칼럼 정보를 이용해서  테이블스페이스의 실 사용량을 확인할 수 있습니다.
  • X$SEGMENT의 TOTAL_USED_SIZE  칼럼은 BUG-31372 에서 추가되었습니다.
  • BUG-31372 가 반영된 버전은 아래와 같습니다.
    • ALTIBASE HDB 5.3.3.33
    • ALTIBASE HDB 5.3.5.15
    • ALTIBASE HDB 5.5.1.0.3
  • 따라서 BUG-31372 가 변영되지 않은 ALTIBASE HDB 5.3.3, 5.3.5, 5.5.1 버전에서는 아래 쿼리 사용 시 에러가 발생할 수 있습니다.
  • 이 버전에서는 언두 테이블스페이스와 임시 테이블스페이스의 실 사용량을 구할 수 없습니다.

 

 

 

 

디스크 테이블스페이스 사용량 조회


 

디스크 테이블스페이스 사용량 조회 쿼리
SET LINESIZE 1024;
SET COLSIZE 30;
SELECT NAME TBS_NAME                                                                                                            -- TBS_NAME : 디스크 테이블스페이스 이름
     , TO_CHAR(D.MAX * PAGE_SIZE / 1024 /1024, '999,999,999') 'MAX(M)'                                                          -- MAX(M)   : 테이블스페이스 최대 크기
     , TO_CHAR(TOTAL_PAGE_COUNT*PAGE_SIZE/1024/1024, '999,999,999') 'TOTAL(M)'                                                  -- TOTAL(M) : 현재까지 할당된 총 페이지 크기
     , DECODE(TYPE, 7, TO_CHAR((SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)/1024/1024
                          FROM V$UDSEGS)+ (SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)/1024/1024
                          FROM V$TSSEGS), '999,999,999') , /* UNDO */
                       TO_CHAR((ALLOCATED_PAGE_COUNT*PAGE_SIZE)/1024/1024, '999,999,999')) 'ALLOC(M)'                           -- ALLOC(M) : 현재까지 할당받은 페이지 중 '빈 페이지'를 제외한 '사용 중인 페이지'만의 합계
     , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'),
                    4, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999') /* SYS_TEMP */
                     , LPAD('-', 12)) 'USED(M)'                                                                                 -- USED(M)  : 사용 중인 페이지 중에서 데이터가 적재된 크기. TEMP와 UNDO 는 USED 를 구할 수 없음.
     , DECODE(TYPE, 7, TO_CHAR(((SELECT SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)
                                  FROM V$UDSEGS)+ (SELECT SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)
                                  FROM V$TSSEGS)) / D.MAX* 100,  '99.99') ,          /* UNDO */
                    3, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100,  '99.99') ,
                    4, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100,  '99.99') ,   /* TEMP */
                       TO_CHAR(ALLOCATED_PAGE_COUNT / D.MAX * 100,  '99.99') ) 'USAGE(%)'                                       -- USAGE(%) : MAX대비 USED. TEMP, UNDO 의 경우 MAX대비 ALLOC
     , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE     -- STATE    : 테이블스페이스 상태
     , D.AUTOEXTEND
  FROM V$TABLESPACES T LEFT OUTER JOIN (SELECT SPACE_ID , SUM(TOTAL_USED_SIZE) USED
                                          FROM X$SEGMENT
                                         GROUP BY SPACE_ID ) DS ON DS.SPACE_ID = T.ID
     ,(SELECT SPACEID
             , SUM(DECODE(MAXSIZE, 0, CURRSIZE, MAXSIZE)) AS MAX
             , DECODE(MAX(AUTOEXTEND), 1, 'ON', 'OFF') 'AUTOEXTEND'
          FROM V$DATAFILES
         GROUP BY SPACEID ) D
 WHERE T.ID = D.SPACEID
;
결과 예시
  • No labels