...
[TS01] 메모리 테이블스페이스 사용량
Anchor | ||||
---|---|---|---|---|
|
알티베이스 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, '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 용 쿼리 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, '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 버전 용 쿼리 language sql 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 | ||||
---|---|---|---|---|
|
알티베이스 4 이상 버전에서 사용할 수 있다.
Code Block language sql 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 | ||||
---|---|---|---|---|
|
알티베이스 5.5.1 이상 버전에서 사용할 수 있다. 다른 버전과 달리 언두 테이블스페이스의 사용량도 확인할 수 있다.
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((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 용 쿼리 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((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 language sql 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 사용률
...