Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

[TS01] 메모리 테이블스페이스 사용량
Anchor
TS01
TS01
[맨 위로]

  • 알티베이스 5.5.1 이상 버전에서 사용할 수 있다. 

  • 휘발성(VOLATILE) 테이블스페이스 사용량도 볼 수 있게 되었다. 알티베이스 5.5.1부터 휘발성 메모리 테이블스페이스의 정보를 저장하는  V$VOL_TABLESPACES가 추가되었다.

    Code Block
    title알티베이스 5.5.1 이상
    languagesql
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((TOTAL/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT ID TBS_ID
                 , DECODE(TYPE, 0, 'MEM_SYS_DIC', 1, 'MEM_SYS_DATA', 2, 'MEM_USER_DATA', 8, 'VOL_USER_DATA') TBS_TYPE
                 , NAME TBS_NAME
                 , DECODE(M.MAXSIZE, 140737488322560, D.MEM_MAX_DB_SIZE , 0 , T.TOTAL_PAGE_COUNT * T.PAGE_SIZE, M.MAXSIZE) MAX
                 , M.ALLOC_PAGE_COUNT * T.PAGE_SIZE TOTAL
                 , NVL(M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT, T.TOTAL_PAGE_COUNT)*PAGE_SIZE ALLOC
                 , NVL(MT.USED, 0) USED
                 , DECODE(T.STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , DECODE(M.AUTOEXTEND_MODE, 1, 'ON', 'OFF') 'AUTOEXTEND'
              FROM V$DATABASE D
                 , V$TABLESPACES T
                 , (SELECT SPACE_ID
                         , SPACE_NAME
                         , ALLOC_PAGE_COUNT
                         , FREE_PAGE_COUNT
                         , DECODE(MAX_SIZE, 0, (SELECT VALUE1
                                                  FROM V$PROPERTY
                                                  WHERE NAME = 'VOLATILE_MAX_DB_SIZE'), MAX_SIZE) AS MAXSIZE
                         , AUTOEXTEND_MODE
                      FROM V$VOL_TABLESPACES
                     UNION ALL
                    SELECT SPACE_ID
                         , SPACE_NAME
                         , ALLOC_PAGE_COUNT
                         , FREE_PAGE_COUNT
                         , MAXSIZE
                         , AUTOEXTEND_MODE
                      FROM V$MEM_TABLESPACES ) M LEFT OUTER JOIN (SELECT TABLESPACE_ID, SUM((FIXED_USED_MEM + VAR_USED_MEM)) USED
                                                                    FROM V$MEMTBL_INFO
                                                                   GROUP BY TABLESPACE_ID ) MT ON M.SPACE_ID = MT.TABLESPACE_ID
             WHERE T.ID = M.SPACE_ID) ;
  • 알티베이스 5.3.3 용 쿼리이다. 휘발성 메모리 테이블스페이스 정보는 나오지 않는다.  

    Code Block
    title알티베이스 5.3.3 용 쿼리
    languagesql
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((TOTAL/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT ID TBS_ID
                 , DECODE(TYPE, 0, 'MEM_SYS_DIC', 1, 'MEM_SYS_DATA', 2, 'MEM_USER_DATA', 8, 'VOL_USER_DATA') TBS_TYPE
                 , NAME TBS_NAME
                 , DECODE(MAXSIZE, 140737488322560, D.MEM_MAX_DB_SIZE, 0, ALLOCATED_PAGE_COUNT*PAGE_SIZE, MAXSIZE) MAX
                 , ALLOCATED_PAGE_COUNT * PAGE_SIZE TOTAL
                 , NVL(M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT, TOTAL_PAGE_COUNT)*PAGE_SIZE ALLOC
                 , MT.USED USED
                 , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , DECODE(AUTOEXTEND_MODE, 1, 'ON', 'OFF') 'AUTOEXTEND'
              FROM V$DATABASE D
                 , V$TABLESPACES T
                 , V$MEM_TABLESPACES M
                 , (SELECT TABLESPACE_ID
                         , SUM((FIXED_USED_MEM + VAR_USED_MEM)) USED
                      FROM V$MEMTBL_INFO
                     GROUP BY TABLESPACE_ID) MT
             WHERE T.ID = M.SPACE_ID
               AND ID = MT.TABLESPACE_ID ) ;
  • 알티베이스 4.3.9 용 쿼리이다.  
    알티베이스 4 버전에서는 사용자가 메모리 테이블스페이를 생성할 수 있는 기능을 제공하지 않았기 때문에 'SYS_TBS_MEMORY'라는 하나의 테이블스페이스만 나온다. 

    Code Block
    title알티베이스 4 버전 용 쿼리
    languagesql
    SELECT TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((TOTAL/1024), 0))*100, '999.99') 'USAGE(%)'
      FROM (SELECT 'SYS_TBS_MEMORY' TBS_NAME
                 , MEM_MAX_DB_SIZE MAX
                 , MEM_ALLOC_PAGE_COUNT * 32 TOTAL
                 , (MEM_ALLOC_PAGE_COUNT - MEM_FREE_PAGE_COUNT) * 32 ALLOC
                 , MTBL.USED USED
              FROM V$DATABASE DB
                 , (SELECT SUM(FIXED_USED_MEM+VAR_USED_MEM) AS USED
                      FROM V$MEMTBL_INFO ) MTBL ) ;

...

[TS02] 전체 메모리 테이블스페이스 사용량
Anchor
TS02
TS02
[맨 위로]

  • 알티베이스 4 이상 버전에서 사용할 수 있다. 

    Code Block
    languagesql
     SELECT MEM_MAX_DB_SIZE/1024/1024 'MAX(M)'
         , ROUND(MEM_ALLOC_PAGE_COUNT*32/1024, 2) 'TOTAL(M)'
         , TRUNC((MEM_ALLOC_PAGE_COUNT-MEM_FREE_PAGE_COUNT)*32/1024, 2) 'ALLOC(M)'
         , (SELECT ROUND(SUM((FIXED_USED_MEM + VAR_USED_MEM))/(1024*1024), 3)
              FROM V$MEMTBL_INFO) 'USED(M)'
         , TRUNC(((MEM_ALLOC_PAGE_COUNT-MEM_FREE_PAGE_COUNT)*32*1024)/MEM_MAX_DB_SIZE, 4)*100 'USAGE(%)'
      FROM V$DATABASE ;  
  • 주요 컬럼 설명

    MAX(M)전체 메모리 테이블스페이스가 최대로 할당 가능한 페이지의 합계로 알티베이스 서버 프로퍼티 MEM_MAX_DB_SIZE에 의해 정의된다.
    TOTAL(M)전체 메모리 테이블스페이스가 현재까지 할당 받은 페이지의 합계이다.
    ALLOC(M)전체 메모리 테이블스페이스가 현재까지 할당 받은 페이지중 '빈 페이지'를 제외한 '사용중인 페이지'만의 합계이다.
    USED(M)전체 메모리 테이블스페이스의 '사용중인 페이지'중에서 '실제로 데이터가 적재된 페이지'의 합계이다.
    USAGE(%)전체 메모리 테이블스페이스가 '최대로 할당 가능한 페이지' 대비 '사용중인 페이지'에 대한 백분율. (즉, ALLOC/MAX)

...

[TS03] 디스크 테이블스페이스 사용량
Anchor
TS03
TS03
[맨 위로]

 

  • 알티베이스 5.5.1 이상 버전에서 사용할 수 있다. 다른 버전과 달리 언두 테이블스페이스의 사용량도 확인할 수 있다.

    Code Block
    title알티베이스 5.5.1 이상
    languagesql
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT T.ID TBS_ID
                 , DECODE(TYPE, 3, 'DISK_SYS_DATA', 4, 'DISK_USER_DATA', 5, 'DISK_SYS_TEMP', 6, 'DISK_USER_TEMP', 7, 'DISK_SYS_UNDO') TBS_TYPE
                 , NAME TBS_NAME
                 , D.MAX * PAGE_SIZE MAX
                 , TOTAL_PAGE_COUNT * PAGE_SIZE TOTAL
                 , DECODE(TYPE, 7, U.TOTAL_EXT_CNT * PROP.EXTENT_SIZE, ALLOCATED_PAGE_COUNT * PAGE_SIZE) ALLOC
                 , DECODE(TYPE, 3, NVL(DS.USED, 0) , 4, NVL(DS.USED, 0) , 7, (U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE , ALLOCATED_PAGE_COUNT * PAGE_SIZE ) USED
                 , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') 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
                 , V$DISK_UNDO_USAGE U
                 , (SELECT VALUE1 EXTENT_SIZE
                      FROM V$PROPERTY
                     WHERE NAME = 'SYS_UNDO_TBS_EXTENT_SIZE') PROP
             WHERE T.ID = D.SPACEID ) ;
  • 알티베이스 5.3.3, 5.3.5

  • 알티베이스 5 에서 디스크 테이블의 구조 변경으로 디스크 테이블스페이스의 실 사용량(USED)을 구할 수 없고 할당 크기(ALLOC)만을 알 수 있었으나 BUG-31372가 반영 후 실 사용량(USED)을 확인할 수 있게 되었다.
  • BUG-31372 가 반영된 버전은 아래와 같다.
    • ALTIBASE HDB 5.3.3.33
    • ALTIBASE HDB 5.3.5.15
    • ALTIBASE HDB 5.5.1.0.3
  • 이 버전에서는 언두 테이블스페이스와 임시 테이블스페이스의 실 사용량(USED)을 구할 수 없다.

    Code Block
    title알티베이스 5.3.3, 5.3.5 용 쿼리
    languagesql
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT T.ID TBS_ID
                 , DECODE(TYPE, 3, 'DISK_SYS_DATA', 4, 'DISK_USER_DATA', 5, 'DISK_SYS_TEMP', 6, 'DISK_USER_TEMP', 7, 'DISK_SYS_UNDO') TBS_TYPE
                 , NAME TBS_NAME
                 , D.MAX * PAGE_SIZE MAX
                 , TOTAL_PAGE_COUNT*PAGE_SIZE TOTAL
                 , DECODE(TYPE, 7, (SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)
                                      FROM V$UDSEGS) + 
                                   (SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)
                                      FROM V$TSSEGS) , /* UNDO */
                                   ALLOCATED_PAGE_COUNT*PAGE_SIZE) ALLOC
                 , DECODE(TYPE, 3, NVL(DS.USED, 0), 
                                4, NVL(DS.USED, 0) /* SYS_TEMP */
                                 , ALLOCATED_PAGE_COUNT*PAGE_SIZE) USED
                 , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') 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) ;

...

  • 아래는 알티베이스 5.5.1 이상 버전에서 사용할 수 있다.

    Code Block
    languagesql
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((TOTAL/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
          , '' STATE
          , '' 'AUTOEXTEND'
      FROM (SELECT '' TBS_ID
                 , 'ALL_MEM_TBS' TBS_TYPE
                 , '-' TBS_NAME
                 , MEM_MAX_DB_SIZE MAX
                 , MEM_ALLOC_PAGE_COUNT*32 TOTAL
                 , (MEM_ALLOC_PAGE_COUNT-MEM_FREE_PAGE_COUNT)*32 ALLOC
                 , (SELECT SUM(FIXED_USED_MEM + VAR_USED_MEM)
                      FROM V$MEMTBL_INFO) USED
              FROM V$DATABASE )
    UNION ALL
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((TOTAL/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT ID TBS_ID
                 , DECODE(TYPE, 0, 'MEM_SYS_DIC', 1, 'MEM_SYS_DATA', 2, 'MEM_USER_DATA', 8, 'VOL_USER_DATA') TBS_TYPE
                 , NAME TBS_NAME
                 , DECODE(M.MAXSIZE, 140737488322560, D.MEM_MAX_DB_SIZE , 0 , T.TOTAL_PAGE_COUNT * T.PAGE_SIZE, M.MAXSIZE) MAX
                 , M.ALLOC_PAGE_COUNT * T.PAGE_SIZE TOTAL
                 , NVL(M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT, T.TOTAL_PAGE_COUNT)*PAGE_SIZE ALLOC
                 , NVL(MT.USED, 0) USED
                 , DECODE(T.STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , DECODE(M.AUTOEXTEND_MODE, 1, 'ON', 'OFF') 'AUTOEXTEND'
              FROM V$DATABASE D
                 , V$TABLESPACES T
                 , (SELECT SPACE_ID
                         , SPACE_NAME
                         , ALLOC_PAGE_COUNT
                         , FREE_PAGE_COUNT
                         , DECODE(MAX_SIZE, 0, (SELECT VALUE1
                                                  FROM V$PROPERTY
                                                  WHERE NAME = 'VOLATILE_MAX_DB_SIZE'), MAX_SIZE) AS MAXSIZE
                         , AUTOEXTEND_MODE
                      FROM V$VOL_TABLESPACES
                     UNION ALL
                    SELECT SPACE_ID
                         , SPACE_NAME
                         , ALLOC_PAGE_COUNT
                         , FREE_PAGE_COUNT
                         , MAXSIZE
                         , AUTOEXTEND_MODE
                      FROM V$MEM_TABLESPACES ) M LEFT OUTER JOIN (SELECT TABLESPACE_ID, SUM((FIXED_USED_MEM + VAR_USED_MEM)) USED
                                                                    FROM V$MEMTBL_INFO
                                                                   GROUP BY TABLESPACE_ID ) MT ON M.SPACE_ID = MT.TABLESPACE_ID
             WHERE T.ID = M.SPACE_ID)
    UNION ALL
    SELECT TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(MAX/1024/1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'TOTAL(M)'
         , TO_CHAR(ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT T.ID TBS_ID
                 , DECODE(TYPE, 3, 'DISK_SYS_DATA', 4, 'DISK_USER_DATA', 5, 'DISK_SYS_TEMP', 6, 'DISK_USER_TEMP', 7, 'DISK_SYS_UNDO') TBS_TYPE
                 , NAME TBS_NAME
                 , D.MAX * PAGE_SIZE MAX
                 , TOTAL_PAGE_COUNT * PAGE_SIZE TOTAL
                 , DECODE(TYPE, 7, U.TOTAL_EXT_CNT * PROP.EXTENT_SIZE, ALLOCATED_PAGE_COUNT * PAGE_SIZE) ALLOC
                 , DECODE(TYPE, 3, NVL(DS.USED, 0) , 4, NVL(DS.USED, 0) , 7, (U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE , ALLOCATED_PAGE_COUNT * PAGE_SIZE ) USED
                 , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') 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
                 , V$DISK_UNDO_USAGE U
                 , (SELECT VALUE1 EXTENT_SIZE
                      FROM V$PROPERTY
                     WHERE NAME = 'SYS_UNDO_TBS_EXTENT_SIZE') PROP
             WHERE T.ID = D.SPACEID ) ;
  • 주요 컬럼 설명

    MAX(M)언두 테이블스페이스에서 사용할 수 있는 최대 크기
    TOTAL(M)테이블스페이스가 현재까지 할당받은 크기.
    메모리 체크포인트 이미지 파일 및 디스크 데이터 크기와 동일하다.
    ALLOC(M)테이블스페이스가 현재까지 할당 받은 페이지 중 '빈 페이지'를 제외한 '사용 중인 페이지'의 크기
    USED(M)테이블스페이스가 사용 중인 페이지에서 실제 데이터가 적재된 크기.
    USAGE(%)전체 메모리 테이블스페이스 : MAX 대비 TOTAL 사용률
    메모리 테이블스페이스 : TOTAL 대비 USED 사용률
    디스크 테이블스페이스 : MAX 대비 USED 사용률

...