Oracle 8i부터 Data Buffer Cache 를 3개의 용도로 나누어서 사용할 수 있다.
종류는 다음과 같이 조회 할 수 있다.
구분
-
위에 조회된 내용중 highlight 된 3개가 그 3개의 버퍼 캐시이다.
DB_CACHE_SIZE
Default : 일반 데이터 버퍼 캐쉬를 의미하며 DB_CACHE_SIZE 으로 정의된다.
DB_KEEP_CACHE_SIZE
재사용률이 높은 블록이 위치하게 된다. 이 곳에 읽혀진 블록은 긴 시간동안 메모리상에서 관리된다.
DB_KEEP_CACHE_SIZE 으로 정의 된다.
대상 객체
자주 사용되는 메타성 데이터나 인덱스등을 위치하면 된다.
사용법
-
DB_RECYCLE_CACHE_SIZE
재사용률이 거의 없다고 판단되는 블록이 읽히는 공간이다. 이곳에 위치하게 되는 블록은 짧은 시간동안 관리된다.
DB_RECYCLE_CACHE_SIZE 으로 정의 된다. 법
-
종합
위 세가지의 CACHE 영역은 각자만의 독립된 영역을 할당받고 LRU List 를 관리한다.
위의 영역에서 관리되는 시간이 서로 다를 수 있는 이유는 DB_KEEP_CACHE_SIZE > DB_CACHE_SIZE > DB_RECYCLE_SIZE 순으로 크기가 다르기 때문이다. 당연히 크기가 큰 순으로 블록이 오래 관리되는 것이다.
이 부분은 Table 을 설계할 때부터 고려를 해야 한다. 하지만 테이블의 개수가 많고 추후에 수정될 가능성이 높다면 융통성이 부족해진다.
ASMM (Auto Shared Memory Management) &
제목 그대로 공유 메모리인 SGA의 메모리를 자동으로 관리해주는 기능을 말한다. 이 기능은 10g 에서 등장했다.
ASMM 을 사용하기 위해서는 STATISTICS_LEVEL 파라미터의 값을 ALL 또는 TYPICAL 으로 하고 SGA_TARGET 의 값이 0이 아니여야 한다.
STATISTICS_LEVEL 조회
-
SGA_TARGET 값 조회
-
ASMM 으로 자동 관리되는 파라미터
SGA 의 구성 (Shared Pool, Db Buffer Cache, Large Pool, Java Pool, Stream Pool 크기를 정의하고 Redo Log는 하지 않는다 는 점을 유의하자.)
ASMM 을 사용해도 수동으로 관리해야 하는 파라미터
- DB_Kepp_cache_size
자동관리되는 영역 조회
컬럼소개
조회 결과
Highight 된 부분이 ASMM 으로 관리되는 부분이다.
-
최소값 설정
ASMM 을 사용시에 ASMM에 관리되는 메모리영역의 값을 0으로 해놓으면 자동으로 관리되지만 최소값이 1 그레뉼까지 내려간다. 이런 경우를 방지하기 위해 기본값을 설정하는데 기본값을 설정하면 그 이상으로 내려가지 않는다. 즉 하한값 설정이다.
기본값 조회
-
변경은 기존의 ALTER SYSTEM SET () [SCOPE=spfile | both | memory]; 으로 가능하다.
&
종류는 다음과 같이 조회 할 수 있다.
구분
-
SQL> show parameter cache_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_16k_cache_size big integer 16M db_2k_cache_size big integer 0 db_32k_cache_size big integer 0 db_4k_cache_size big integer 0 db_8k_cache_size big integer 0 db_cache_size big integer 0 db_keep_cache_size big integer 0 db_recycle_cache_size big integer 0-
위에 조회된 내용중 highlight 된 3개가 그 3개의 버퍼 캐시이다.
DB_CACHE_SIZE
Default : 일반 데이터 버퍼 캐쉬를 의미하며 DB_CACHE_SIZE 으로 정의된다.
DB_KEEP_CACHE_SIZE
재사용률이 높은 블록이 위치하게 된다. 이 곳에 읽혀진 블록은 긴 시간동안 메모리상에서 관리된다.
DB_KEEP_CACHE_SIZE 으로 정의 된다.
대상 객체
자주 사용되는 메타성 데이터나 인덱스등을 위치하면 된다.
사용법
-
ALTER TABLE test STORAGE ( BUFFER_POOL KEEP);-
DB_RECYCLE_CACHE_SIZE
재사용률이 거의 없다고 판단되는 블록이 읽히는 공간이다. 이곳에 위치하게 되는 블록은 짧은 시간동안 관리된다.
DB_RECYCLE_CACHE_SIZE 으로 정의 된다. 법
-
ALTER TABLE test STORAGE ( BUFFER_POOL RECYCLE);-
위 세가지의 CACHE 영역은 각자만의 독립된 영역을 할당받고 LRU List 를 관리한다.
위의 영역에서 관리되는 시간이 서로 다를 수 있는 이유는 DB_KEEP_CACHE_SIZE > DB_CACHE_SIZE > DB_RECYCLE_SIZE 순으로 크기가 다르기 때문이다. 당연히 크기가 큰 순으로 블록이 오래 관리되는 것이다.
이 부분은 Table 을 설계할 때부터 고려를 해야 한다. 하지만 테이블의 개수가 많고 추후에 수정될 가능성이 높다면 융통성이 부족해진다.
제목 그대로 공유 메모리인 SGA의 메모리를 자동으로 관리해주는 기능을 말한다. 이 기능은 10g 에서 등장했다.
ASMM 을 사용하기 위해서는 STATISTICS_LEVEL 파라미터의 값을 ALL 또는 TYPICAL 으로 하고 SGA_TARGET 의 값이 0이 아니여야 한다.
STATISTICS_LEVEL 조회
-
SQL> show parameter statistics_level NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ statistics_level string TYPICAL-
SGA_TARGET 값 조회
-
SQL> select name, value from v$parameter where name = 'sga_target'; NAME VALUE ---------- ------------------------------ sga_target 419430400-
ASMM 으로 자동 관리되는 파라미터
SGA 의 구성 (Shared Pool, Db Buffer Cache, Large Pool, Java Pool, Stream Pool 크기를 정의하고 Redo Log는 하지 않는다 는 점을 유의하자.)
- DB_CACHE_SIZE
- SHARED_POOL_SIZE
- LARGE_POOL_SIZE
- JAVA_POOL_SIZE
- STREAMS_POOL_SIZE
ASMM 을 사용해도 수동으로 관리해야 하는 파라미터
- Log_buffer
Redo Log Buffer 의 SIZE 이다. 이 크기는 대용량 데이터베이스라도 10Mb 를 넘기지 않는것이 좋다.
- DB_Kepp_cache_size
- RECYCLE_BUFFER_CACHE_SIZE
- DB_nK_CACHE_SIZE (n=2,4,8,16,32)
DB BUFFER CACHE 내의 고정 영역이다. 이것은 사용자가 직접 지정한다.
자동관리되는 영역 조회
컬럼소개
CURRENT_SIZE : 현재 크기
MIN_SIZE : 데이터베이스 시작 후 가장 작은 크기
MAX_SIZE : 데이터베이스 시작 후 가장 큰 크기
USER_SPECIFIED_SIZE : 사용자가 설정한 크기
OPER_COUNT : 데이터베이스 시작 후 조정되었던 횟수
LAST_OPER_TYPE : 마지막 조정된 타입
- STATIC : 변동 없음
- INITIALIZING : 초기화
- GLOW : 증가
- SHRINK : 감소
- SHRINK_CANCEL : 감소 취소
LAST_OPER_MODE : 마지막 조정된 방법
- MANUAL : 사용자 수정
- DEFFERED : 지연 적용
- IMMEDIATE : 바로 적용
LAST_OPER_TIME : 마지막 조정된 시간
GRANULE_SIZE : 그레뉼 단위 크기
조회 결과
Highight 된 부분이 ASMM 으로 관리되는 부분이다.
-
col component for a30 SQL> SELECT * FROM V$SGA_DYNAMIC_COMPONENTS COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE USER_SPECIFIED_SIZE OPER_COUNT LAST_OPER_TYP LAST_OPER LAST_OPER_TI GRANULE_SIZE ------------------------------ ------------ ---------- ---------- ------------------- ---------- ------------- --------- ------------ ------------ shared pool 117440512 117440512 0 0 2 SHRINK DEFERRED 05-APR-12 4194304 large pool 4194304 4194304 0 0 0 STATIC 4194304 java pool 4194304 4194304 0 0 0 STATIC 4194304 streams pool 4194304 4194304 0 0 0 STATIC 4194304 DEFAULT buffer cache 268435456 268435456 0 0 5 SHRINK MANUAL 05-APR-12 4194304 KEEP buffer cache 0 0 0 0 0 STATIC 4194304 RECYCLE buffer cache 0 0 0 0 0 STATIC 4194304 DEFAULT 2K buffer cache 0 0 0 0 0 STATIC 4194304 DEFAULT 4K buffer cache 0 0 0 0 0 STATIC 4194304 DEFAULT 8K buffer cache 0 0 0 0 0 STATIC 4194304 DEFAULT 16K buffer cache 16777216 0 0 16777216 3 GROW MANUAL 05-APR-12 4194304 DEFAULT 32K buffer cache 0 0 0 0 0 STATIC 4194304 ASM Buffer Cache 0 0 0 0 0 STATIC 4194304-
ASMM 을 사용시에 ASMM에 관리되는 메모리영역의 값을 0으로 해놓으면 자동으로 관리되지만 최소값이 1 그레뉼까지 내려간다. 이런 경우를 방지하기 위해 기본값을 설정하는데 기본값을 설정하면 그 이상으로 내려가지 않는다. 즉 하한값 설정이다.
기본값 조회
-
SELECT name, value FROM v$parameter WHERE name IN ('db_cache_size','shared_pool_size','large_pool_size','streams_pool_size','java_pool_size') ORDER BY name-
변경은 기존의 ALTER SYSTEM SET () [SCOPE=spfile | both | memory]; 으로 가능하다.
&
ASMM 참고 : http://l0vemode.tistory.com/156
ASMM과 spfile : http://tawool-oracle.tistory.com/190#asmm_spfile
'Oracle > Administrator' 카테고리의 다른 글
Hidden Parameter 조회 (1) | 2012.04.16 |
---|---|
동적 파라미터와 정적 파라미터 구분하기 (0) | 2012.04.16 |
Directory 관리 (0) | 2012.04.04 |
Temporary Tablespace 관리 (0) | 2012.04.04 |
디스크 사용량 (0) | 2012.03.31 |