Versions Compared

Key

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

...

  • 알티베이스 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, 'MEMORYMEM_DICTIONARYSYS_DIC', 1, 'MEMORYMEM_SYS_DATA', 2, 'MEMORYMEM_USER_DATA', 8, 'VOLATILEVOL_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, 'MEMORYMEM_DICTIONARYSYS_DIC', 1, 'MEMORYMEM_SYS_DATA', 2, 'MEMORYMEM_USER_DATA', 8, 'VOLATILEVOL_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 'SYS_TBS_MEMORY' AS TABLESPACE_NAME
          , ROUNDTO_CHAR(MEM_MAX_DB_SIZE/1024/1024, 2'999,999,999') AS 'MAX(M)'
          , ROUND(MEM_ALLOC_PAGE_COUNT * 32 / 1024, 2) AS TO_CHAR(TOTAL/1024, '999,999,999') 'TOTAL(M)'
          , ROUND((MEM_ALLOC_PAGE_COUNT - MEM_FREE_PAGE_COUNT) * 32 / 1024, 2) AS 'ALLOCTO_CHAR(ALLOC/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
          , TO_CHAR((ROUND(MTBL.(USED/1024/1024), 2) AS 'USED(M0)/ROUND((TOTAL/1024), 0))*100, '999.99') 'USAGE(%)'
      FROM (SELECT 'SYS_TBS_MEMORY' TBS_NAME
    , ROUND(((             , MEM_MAX_DB_SIZE MAX
                 , MEM_ALLOC_PAGE_COUNT * 32 TOTAL
                 , (MEM_ALLOC_PAGE_COUNT - MEM_FREE_PAGE_COUNT) * 32 *ALLOC
    1024 / MEM_MAX_DB_SIZE) * 100, 2) AS 'USAGE(%)'
                , MTBL.USED USED
              FROM V$DATABASE DB
    ,             , (SELECT SUM(FIXED_USED_MEM+VAR_USED_MEM) AS USED
                      FROM V$MEMTBL_INFO ) MTBL ) ;
  • 주요 컬럼 설명

    TBS_ID
    테이블스페이스 고유 번호이다.
    TBS_TYPE
    메모리 테이블스페이스 유형. 
    0 - 시스템 메모리 테이블스페이스로 데이터베이스 시스템의 운영상 필요한 메타 데이터를 저장하기 위한 테이블스페이스이다.
    1 - 시스템 메모리 테이블스페이스로 데이터베이스 생성 시 기본으로 생성되는 데이터를 저장하기 위한 테이블스페이스.
    2 - 사용자가 생성한 메모리 테이블스페이스이다.
    8 - 사용자가 생성한 휘발성 메모리 테이블스페이스이다.
    MAX(M)메모리 테이블스페이스에서 사용할 수 있는 최대 메모리 크기이다.
    테이블스페이스 생성 시 MAXSIZE 를 지정하지 않는 경우에 ''UNDEFINED' 를 출력한다. 
    테이블스페이스 속성이 AUTOEXTEND OFF인 경우 TOTAL(M)을 출력한다.
    TOTAL(M)메모리 테이블스페이스가 현재까지 할당받은 페이지의 합계이다. 즉, 현재까지 할당된 '사용 중인 페이지'와 '빈 페이지'의 합계로 데이터 파일(메모리 체크포인트 이미지 파일) 크기와 같다. 알티베이스 서버를 구동하면 메모리에는 '사용 중인 페이지'만 적재된다. 따라서 이 값만큼 물리 메모리를 사용하고 있다고 판단하기는 어렵다.
    ALLOC(M)메모리 테이블스페이스가 현재까지 할당받은 페이지 중 '빈 페이지'를 제외한 '사용 중인 페이지'만의 합계이다. 예를 들어, 100M 크기의 메모리 테이블에 DROP 또는 TRUNCATE를 수행하면 전체 페이지 합계는 변함없으나 페이지 반납을 통해 '사용 중인 페이지'가 '빈 페이지'가 되므로 이 값이 0에 가깝게 된다.
    USED(M)메모리 테이블스페이스의 '사용 중인 페이지' 중에서 '실제로 데이터가 적재된 페이지'의 합계이다. 예를 들어, ALLOC이 100M 크기인 메모리 테이블에 전체 DELELE를 수행하면 ALLOC은 100M로 변함없으나 USED는 0에 가깝게 된다.
    USAGE(%)
    메모리 테이블스페이스가 '최대로 할당 가능한 현재까지 할당받은 페이지' 대비 '사용 중인 페이지'에 대한 백분율. (즉, ALLOCUSED/MAXTOTAL)
    STATE
    테이블스페이스의 상태. 
    1 - 오프라인, 2 - 온라인, 3 - 백업 중인 오프라인 상태의 테이블스페이스, 4 - 백업 중인 온라인 상태의 테이블스페이스, 
    128  - 삭제된(dropped) 테이블스페이스
    1024 - 폐기된(discarded) 테이블스페이스
    1028 - 백업 중인 폐기된(discarded) 상태의 테이블스페이스
    AUTOEXTEND메모리 테이블스페이스의 자동 확장 여부. / ON(1), OFF(2)

...

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

    Code Block
    title알티베이스 5.5.1 이상
    languagesql
    SELECT T.ID TBS_ID
         , DECODE(TYPE, 3, 'SYSTEM_DISK_DATA', 4, 'DISK_USER_DATA', 5, 'SYSTEM_DISK_TEMP', 6, 'USER_DISK_TEMP', 7, 'SYSTEM_DISK_UNDO') TBS_TYPE
         , NAME TBS_NAME
                                                                                                                                       
         , TO_CHAR((D.MAX * PAGE_SIZE / 1024 /1024), '999,999,999') 'MAX(M)'
                                                                                   
         , TO_CHAR((TOTAL_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999') 'TOTAL(M)'
                                                                         
         , DECODE(TYPE, 7, TO_CHAR((U.TOTAL_EXT_CNT*PROP.EXTENT_SIZE)ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
                        , TO_CHAR((ALLOCATED_PAGE_COUNT * PAGE_SIZE)USED/1024/1024, '999,999,999')) 'ALLOCUSED(M)'
                                                    
         , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)ROUND((USED/1024/1024, '999,999,999'), 
                        4, TO_CHAR(NVL(DS.USED, 0)/ROUND((MAX/1024/1024, '999,999,999'),
                        7, TO_CHAR(((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
                         , LPAD('-', 12))'USED(M), 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, TO_CHAR((((U.TXTOTAL_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/(D.MAX*, ALLOCATED_PAGE_COUNT * PAGE_SIZE))*100, '999.99'), ALLOC
                 ,       DECODE(TYPE, 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')
                         , TO_CHAR(( , 7, (U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE , ALLOCATED_PAGE_COUNT/D.MAX) * 100, '99.99')) 'USAGE(%)'PAGE_SIZE ) USED
                                                                    
         , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , D.AUTOEXTEND
                 
         , 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 NAME TBS_TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(D.MAX * PAGE_SIZE / 1024 /1024, '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL_PAGE_COUNT*PAGE_SIZE/1024/1024, '999,999,999') 'TOTAL(M)'
         , DECODE(TYPE, 7, TO_CHAR((SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)ALLOC/1024/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
                   FROM V$UDSEGS)+ (SELECT (SUM(TOTAL_EXTENT_COUNT*PAGE_COUNT_IN_EXTENT)*PAGE_SIZE)/1024/1024
      , TO_CHAR((ROUND((USED/1024/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
             FROM V$TSSEGS), '999,999,999') , /* UNDO */(SELECT T.ID TBS_ID
                 , DECODE(TYPE, 3, 'DISK_SYS_DATA', 4, 'DISK_USER_DATA', 5, 'DISK_SYS_TEMP',      TO_CHAR((ALLOCATED_PAGE_COUNT*PAGE_SIZE)/1024/1024, '999,999,999')) 'ALLOC(M)'
    6, 'DISK_USER_TEMP', 7, 'DISK_SYS_UNDO') TBS_TYPE
        , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'),    , NAME TBS_NAME
                  4, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999') /* SYS_TEMP */D.MAX * PAGE_SIZE MAX
                 , TOTAL_PAGE_COUNT*PAGE_SIZE TOTAL
         , LPAD('-', 12)) 'USED(M)'      , DECODE(TYPE, 7, TO_CHAR(((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)) , /* D.MAXUNDO */
    100,  '999.99') ,          /* UNDO */                ALLOCATED_PAGE_COUNT*PAGE_SIZE) ALLOC
                 , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)/(D.MAX*PAGE_SIZE)* 100, 
    '999.99') ,                           4, TO_CHAR(NVL(DS.USED, 0) /(D.MAX*PAGE_SIZE)* 100,  '999.99') ,* SYS_TEMP */
          /* TEMP */                     ,   TO_CHAR(ALLOCATED_PAGE_COUNT / D.MAX * 100,  '99.99') ) 'USAGE(%)'*PAGE_SIZE) USED
        -- USAGE(%) : MAX대비 USED. TEMP, UNDO  경우 MAX대비 ALLOC
         , 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.1.5
    알티베이스 5 에서 디스크 테이블의 구조 변경으로 디스크 테이블스페이스의 실 사용량(USED)을 구할 수 없고 할당 크기(ALLOC)만을 알 수 있다.
    이 버전에서는 언두 테이블스페이스와 임시 테이블스페이스의 실 사용량을 구할 수 없다.

    Code Block
    title알티베이스 5.1.5 용 쿼리
    languagesql
    SELECT NAME TBS_TBS_ID
         , TBS_TYPE
         , TBS_NAME
         , TO_CHAR(ROUND(D.MAX * PAGE_SIZE / 1024 /1024, 2))'999,999,999') 'MAX(M)'
         , ROUNDTO_CHAR(TOTAL_PAGE_COUNT * PAGE_SIZE / 1024 / 1024, 2'999,999,999') 'TOTAL(M)'
         , DECODE(TYPETO_CHAR(ALLOC/1024/1024, 7, ROUND((SELECT (SUM(total_page_count) * PAGE_SIZE)/1024/1024
      '999,999,999') 'ALLOC(M)'
         , TO_CHAR((ROUND((ALLOC/1024/1024), 0)/ROUND((MAX/1024/1024), 0))*100, '999.99') 'USAGE(%)'
         , STATE
         , AUTOEXTEND
      FROM (SELECT            FROM V$undo_seg)+T.ID TBS_ID
                 , DECODE(TYPE, 3, 'DISK_SYS_DATA', 4, 'DISK_USER_DATA', 5, 'DISK_SYS_TEMP', 6, 'DISK_USER_TEMP',       (SELECT (SUM(ALLOC_PAGE_COUNT) * PAGE_SIZE)/1024/10247, 'DISK_SYS_UNDO') TBS_TYPE
                 , NAME TBS_NAME
                 , D.MAX * FROM v$tss_seg), 2)PAGE_SIZE MAX
                         , ROUND(ALLOCATEDTOTAL_PAGE_COUNT * PAGE_SIZE /TOTAL
    1024 / 1024, 2)) 'ALLOC(M)'         , DECODE(TYPE, 7, ROUND(SELECT ( (SELECT SUM(total_page_count) FROM* V$undoPAGE_segSIZE)
    +                          FROM       V$undo_seg)+ (SELECT (SUM(ALLOC_PAGE_COUNT) FROM* v$tssPAGE_seg SIZE)
    ) / D.MAX  * 100, 2)                    FROM v$tss_seg))
    , ROUND(ALLOCATED_PAGE_COUNT / D.MAX * 100, 2))       , ALLOCATED_PAGE_COUNT * PAGE_SIZE ALLOC
     'USAGE(%)'            , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , D.AUTOEXTEND
              FROM V$TABLESPACES T
                 ,(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) ;
  • 알티베이스 4

    Code Block
    title알티베이스 4 버전 용 쿼리
    languagesql
    SELECT TBS.NAME TBS_NAMEID
         , 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 TBS.ID TBS_ID
                      
         , TO_CHAR(ROUND(DAT.MAX * TBS.PAGE_SIZE / 1024 /1024, 2)) 'MAX(M)'       DECODE(TYPE, 1, 'DISK_SYS_DATA', 2, 'DISK_USER_DATA', 3, 'DISK_SYS_TEMP', 4, 'DISK_USER_TEMP', 5, 'DISK_SYS_UNDO') TBS_TYPE
                 , TBS.NAME TBS_NAME
                 , DAT.MAX * TBS.PAGE_SIZE MAX
                     , ROUND(TBS.TOTAL_PAGE_COUNT * TBS.PAGE_SIZE / 1024 / 1024, 2) 'TOTAL(M)'
                                                 
         , DECODE(TBS.TYPE, 5, ROUND( UNDO.ALLOC * TBS.PAGE_SIZE/1024/1024, 2) /* UNDO TABLESPACE*/
                                     , ROUND( TBS.ALLOCATED_PAGE_COUNT * TBS.PAGE_SIZE / 1024 / 1024, 2) ) 'ALLOC(M)'
                      
         , DECODE(TBS.TYPE, 3, '-' TBS.ALLOCATED_PAGE_COUNT * TBS.PAGE_SIZE /* TEMP TABLESPACE */
                                  , 5, ROUND( UNDO.USED * TBS.PAGE_SIZE /1024/1024, 2) /* UNDO TABLESPACE*/
                                                          , DECODE(SEG.USED, '', 0, ROUND((SEG.USED * TBS.PAGE_SIZE * TBS.A_EXTENT_PAGE_COUNT)/1024/1024, 2)) /* USER TABLESPACE & SYS_TBS_DATA */) 'USED(M)'
            , DECODE(TBS.TYPE, 5, ROUND( UNDO.ALLOC / DAT.MAX * 100, 2) --UNDO
                             , ROUND( TBS.ALLOCATED_PAGE_COUNT / DAT.MAX * 100, 2) ) 'USAGE(%)'
         , DECODE(TBS.STATE, 1, 'ONLINE', 2, 'BEGIN BACKUP', 3, 'END BACKUP', 'NOT DEFINED') STATE
                 , DAT.AUTOEXTEND
              FROM V$TABLESPACES TBS LEFT OUTER JOIN (SELECT SPACE_ID , SUM(EXTENT_TOTAL_COUNT) ALLOC , SUM(EXTENT_FULL_COUNT ) USED
                                                FROM X$SEGMENT
                                                GROUP BY SPACE_ID ) SEG ON TBS.ID = SEG.SPACE_ID
                 ,(SELECT SPACEID
                        ) SEG ON TBS.ID = SEG.SPACE_ID
         ,(SELECT SPACEID
                 , SUM(DECODE(MAXSIZE, 0, CURRSIZE, MAXSIZE)) AS MAX
                         , DECODE(MAX(AUTOEXTEND), 1, 'ON', 'OFF') 'AUTOEXTEND'
                      FROM V$DATAFILES
                     GROUP BY SPACEID ) DAT
                 , (SELECT SUM(ALLOCATED_PAGE_COUNT) ALLOC
                         , SUM(USED_PAGE_COUNT) USED
                      FROM V$UNDO_TBS ) UNDO
             WHERE TBS.ID = DAT.SPACEID );
  • 주요 컬럼 설명

    MAX(M)디스크 테이블스페이스가 최대로 할당 가능한 페이지의 합계로 페이지는 '사용 중인 페이지'와 '빈 페이지'로 구분된다.
    TOTAL(M)디스크 테이블스페이스가 현재까지 할당받은 페이지의 합계. 즉, 현재까지 할당된 '사용 중인 페이지'와 '빈 페이지'의 합계로 데이터 파일 크기와 대응한다.
    ALLOC(M)디스크 테이블스페이스가 현재까지 할당받은 페이지 중 '빈 페이지'를 제외한 '사용 중인 페이지'만의 합계이다. 예를 들어, 100M 크기의 디스크 테이블에 DROP 또는 TRUNCATE를 수행하면 전체 페이지 합계는 변함없으나 페이지 반납을 통해 '사용 중인 페이지'가 '빈 페이지'가 되므로 이 값이 0에 가깝게 된다.
    USED(M)

    디스크 테이블스페이스의 '사용 중인 페이지'중에서 '실제로 실제 데이터가 적재된 페이지'의 합계이다.
    하지만, 디스크 테이블스페이스 관리 기법의 변화로 인해 알티베이스 5.1.5부터 5.3.3까지는 확인할 수 없다. 알티베이스 4, 5.5이상부터는 5 부터는 메모리 테이블스페이스처럼 확인이 가능하다.

    USAGE(%)디스크 테이블스페이스가 '최대로 할당 가능한 페이지' 대비 '사용 중인 실제 데이터가 적재된 페이지'에 대한 백분율이다.(즉,ALLOCUSED/ TOTALMAX)



 

[TS04] 디스크 언두 테이블스페이스 사용량

...

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

    Code Block
    languagesql
    SELECT 'MEMORY_DB_TOTAL' TBS_ID
         , TBS_TYPE,
         ,  '-' TBS_NAME,
         ,  TO_CHAR(MEM_MAX_DB_SIZE/1024/1024,    '999,999,999')  'MAX(M)',
         ,  TO_CHAR(MEM_ALLOC_PAGE_COUNT*32TOTAL/1024, '999,999,999')  'TOTAL(M)',
         ,  TO_CHAR((MEM_ALLOC_PAGE_COUNT-MEM_FREE_PAGE_COUNT)*32/1024, '999,999,999') 'ALLOC(M)'
         , TO_CHAR(USED/1024/1024, '999,999,999') 'USED(M)'
         , TO_CHAR((SELECT ROUND(SUM((FIXED_USED_MEM + VAR_USED_MEM))/(1024*(TOTAL/1024), 0)/ROUND((MAX/1024/1024), 30))*100, '999.99') 'USAGE(%)'
          , '' STATE
          , '' 'AUTOEXTEND'
      FROM V$MEMTBL_INFO), '999,999,999') 'USED(M)',
     (SELECT '' TBS_ID
                 , 'ALL_MEM_TBS' TBS_TYPE
                 , '-' TBS_NAME
                 , MEM_MAX_DB_SIZE MAX
         TO_CHAR(((        , MEM_ALLOC_PAGE_COUNT*32 TOTAL
                 , (MEM_ALLOC_PAGE_COUNT-MEM_FREE_PAGE_COUNT)*32*1024)/MEM_MAX_DB_SIZE, '99.99')*100 'USAGE(%)', ALLOC
            '' 'TOTAL_USAGE(%)',
            , (SELECT SUM(FIXED_USED_MEM + VAR_USED_MEM)
       '' STATE,        '' 'AUTOEXTEND'     FROM V$DATABASE
    UNION ALL
    SELECTV$MEMTBL_INFO) USED
             DECODE(TYPE, 0, 'MEMORY_DICTIONARY', 1, 'MEMORY_SYS_DATA', 2, 'MEMORY_USER_DATA', 8, 'VOLATILE_USER_DATA')  FROM V$DATABASE )
    UNION ALL
    SELECT TBS_ID
         , TBS_TYPE
         , NAME TBS_NAME
         , TO_CHAR(DECODE(M.MAXSIZEMAX/1024/1024, 140737488322560, D.MEM_MAX_DB_SIZE , 0 , T.TOTAL_PAGE_COUNT * T.PAGE_SIZE, M.MAXSIZE) '999,999,999') 'MAX(M)'
         , TO_CHAR(TOTAL/1024/1024, '999,999,999') 'MAXTOTAL(M)'
         , TO_CHAR( M.ALLOC_PAGE_COUNT * T.PAGE_SIZE / 1024 / 1024, '999,999,999') 'TOTALALLOC(M)'
         , TO_CHAR(NVL(M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT,T.TOTAL_PAGE_COUNT)*PAGE_SIZEUSED/1024/1024, '999,999,999') 'ALLOCUSED(M)'
         , TO_CHAR(NVL(MT.USEDROUND((USED/1024/1024), 0)/ROUND((TOTAL/1024/1024), 0))*100, '999,999,999.99') 'USEDUSAGE(M%)'
         , TO_CHAR(DECODE(MAXSIZE, 140737488322560, (M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT)*T.PAGE_SIZE/ 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 , (MT.ALLOCTOTAL_PAGE_COUNT-M.FREE * T.PAGE_SIZE, M.MAXSIZE) MAX
                 , M.ALLOC_PAGE_COUNT) /* T.TOTAL_PAGE_COUNT SIZE TOTAL
                 , NVL(M.ALLOC_PAGE_COUNT-M.FREE_PAGE_COUNT), * T.TOTAL_PAGE_COUNT)*PAGE_SIZE/ M.MAXSIZE)ALLOC
    * 100 , '99.99') 'USAGE(%)'         , TO_CHARNVL(MT.USED, / ROUND(ALLOCATED_PAGE_COUNT * PAGE_SIZE / 1024 / 1024, 2)*100, '99.99') 'TOTAL_USAGE(%)'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       , SPACE_NAME
         , ALLOC_PAGE_COUNT               , FREEALLOC_PAGE_COUNT
                 , DECODE(MAX_SIZE, 0, (SELECT VALUE1 FROM V$PROPERTY WHERE NAME = 'VOLATILE_MAX_DB_SIZE'), MAX_SIZE) AS MAXSIZE, FREE_PAGE_COUNT
                    , AUTOEXTEND_MODE    , DECODE(MAX_SIZE, 0, (SELECT VALUE1
      FROM V$VOL_TABLESPACES          UNION ALL         SELECT SPACE_ID              , SPACE_NAME       FROM V$PROPERTY
         , ALLOC_PAGE_COUNT              , FREE_PAGE_COUNT              , MAXSIZE          WHERE NAME   = 'VOLATILE_MAX_DB_SIZE'), AUTOEXTENDMAX_MODESIZE) AS MAXSIZE
            FROM V$MEM_TABLESPACES ) M LEFT OUTER JOIN(SELECT TABLESPACE_ID, ROUND(SUM((FIXED_USED_MEM + VAR_USED_MEM))/(1024*1024),3) USED  , AUTOEXTEND_MODE
           FROM V$MEMTBL_INFO          GROUPFROM BY TABLESPACEV$VOL_IDTABLESPACES
    ) MT ON M.SPACE_ID = MT.TABLESPACE_ID  WHERE T.ID = M.SPACE_ID UNION ALL SELECT    UNION ALL
       DECODE(TYPE, 3, 'SYSTEM_DISK_DATA', 4, 'DISK_USER_DATA', 5, 'SYSTEM_DISK_TEMP', 6, 'USER_DISK_TEMP', 7, 'SYSTEM_DISK_UNDO') TBS_TYPE  SELECT SPACE_ID
      , NAME TBS_NAME                 , SPACE_NAME
                         , ALLOC_PAGE_COUNT
                         , FREE_PAGE_COUNT
                         , MAXSIZE
                         , AUTOEXTEND_MODE
                      FROM V$MEM_TABLESPACES ) M LEFT OUTER JOIN (SELECT TABLESPACE_ID, TO_CHARSUM((D.MAX * PAGE_SIZE / 1024 /1024), '999,999,999') 'MAX(M)'FIXED_USED_MEM + VAR_USED_MEM)) USED
                                                                    FROM V$MEMTBL_INFO
                          , TO_CHAR((TOTAL_PAGE_COUNT * PAGE_SIZE)/1024/1024, '999,999,999') 'TOTAL(M)'                                    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
          , DECODE(TYPE, 7TBS_NAME
         , TO_CHAR((U.TOTAL_EXT_CNT*PROP.EXTENT_SIZE)MAX/1024/1024, '999,999,999') 'MAX(M)'
                        , TO_CHAR((ALLOCATED_PAGE_COUNT * PAGE_SIZE)TOTAL/1024/1024, '999,999,999')) 'ALLOCTOTAL(M)'
                                                   
         , DECODE(TYPE, 3, TO_CHAR(NVL(DS.USED, 0)ALLOC/1024/1024, '999,999,999'), 'ALLOC(M)'
                       4, TO_CHAR(NVL(DS.USED, 0)/1024/1024, '999,999,999'), 'USED(M)'
                       7, TO_CHAR(((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/1024/1024, '999,999,999')
                         , LPAD('-', 12))'USED(MROUND((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, TO_CHAR((((U.TXTOTAL_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/(D.MAX*, ALLOCATED_PAGE_COUNT * PAGE_SIZE))*100, '999.99'), ALLOC
                 ,       DECODE(TYPE, 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')
                         , TO_CHAR((ALLOCATED_PAGE_COUNT/D.MAX) * 100, '99.99')) 'USAGE(%)'      
         , DECODE(TYPE, 7, TO_CHAR((((U.TX_EXT_CNT+U.USED_EXT_CNT+U.UNSTEALABLE_EXT_CNT) * PROP.EXTENT_SIZE)/(TOTAL_PAGE_COUNT * PAGE_SIZE))*100, '999.99'),
                        3, TO_CHAR(NVL(DS.USED, 0)/(TOTAL_, ALLOCATED_PAGE_COUNT * PAGE_SIZE)* 100, '99.99'),                     4, TO_CHAR(NVL(DS.USED,
    0)/(TOTAL_PAGE_COUNT * PAGE_SIZE)* 100, '99.99')                      , TO_CHAR((ALLOCATED_PAGE_COUNT/TOTAL_PAGE_COUNT) * 100, '99.99')) 'TOTAL_USAGE(%)'                      
         , DECODE(STATE, 1, 'OFFLINE', 2, 'ONLINE', 5, 'OFFLINE BACKUP', 6, 'ONLINE BACKUP', 128, 'DROPPED', 'DISCARDED') STATE
                 , D.AUTOEXTEND
                
         , 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_USAGE(%)TOTAL 대비 사용률메모리 테이블스페이스 : TOTAL 대비 USED 사용률 디스크 테이블스페이스 : MAX 대비 USED 사용률

[TS07] 메모리 테이블스페이스 데이터 파일 체크포인트 경로

...