...
알티베이스 5.5.1 이상 버전에서 사용할 수 있다.
휘발성(VOLATILE) 테이블스페이스 사용량도 볼 수 있게 되었다. 알티베이스 5.5.1부터 휘발성 메모리 테이블스페이스의 정보를 저장하는 V$VOL_TABLESPACES가 추가되었다.
Code Block title 알티베이스 5.5.1 이상 language sql 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 용 쿼리 language sql 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 버전 용 쿼리 language sql 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 이상 language sql 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 용 쿼리 language sql 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 용 쿼리 language sql 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 버전 용 쿼리 language sql 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 language sql 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] 메모리 테이블스페이스 데이터 파일 체크포인트 경로
...