[Oracle]Data Buffer Cache Tuning
오라클 데이터 버퍼캐시 튜닝
Data Buffer Cache 영역도 빠른 억세스를 하기위해서 매우 중요한 부분입니다.
8i버전에서는 테이터 버퍼캐쉬를 효율적으로 사용할 수 있도록
keep, recycle, default 이렇게 3가지로 나눠서 적재할 수 있게 하였습니다.
keep : 소량이며 자주사용하는 데이터 저장 recycle : 대량이도 자주 사용되지 않는 데이터 저장 default : 그외에 기본 |
11g부터는 result_cache라는 곳을 데이터버퍼캐시말고 별도로 지원합니다.
자주사용하는 sql문장에 result_cache라는 힌트절을 주면 데이터버퍼캐시에 저장하지않고
result_cache에 저장해놓고 이곳에서 빠르게 데이터를 불러올 수 있습니다.
먼저 데이터 버퍼캐시의 히트율을 확인해 보겠습니다.
디스크에서 읽은 수 /블락에서 읽은 수 를 하면 히트율을 알 수 있습니다.
V$SYSSTAT에는 메모리에서 읽은수와 디스크에서 읽은 수 정보가 나와있는데요
이를 이용해서 위처럼 HIT RATIO를 구할 수 있습니다.
90프로이상이면 잘 구성이 되어있다는 뜻입니다.
SHOW PARAMETER CACHE를 해보시면 CACHE와 관련된 파라미터를 보실 수 있습니다.
먼먼저 db_deep_cache_size와 db_recycle_cache_size를 확인 해보겠습니다.
현재는 0으로 되어있죠. 맨위에서 말한 것처럼 8i부터 데이터버퍼캐쉬를 3가지로
나눠서 설정할 수 있습니다.
각각 4m씩 할당해 주겠습니다.
알아서 적절한 값으로 변해서 들어간것을 확인 할 수 있죠
V$BUFFER_POOL을 조회해보면 각각 몇개의 블락들이
할당되어 있는지 확인 할 수 있습니다.
BIG_EMP테이블이 소량의 데이터조회가 빈번하게 발생한다고 가정하고 위처럼 KEEP으로 지정했습니다.
ACCOUNT는 대량의 데이터조회가 뜸하게 발생한다고 가정해서 RECYCLE로 지정해줬습니다.
USER_TABLES에 BUFFER_칼럼을 보시면 잘 되어있는지 확인 할 수 있습니다.
BUFFER_POOL_STATISTICS 조회를 통해 위와같은 쿼리를 날리면 각 비율을 볼 수 있는데요
KEEP은 소량의 데이터가 자주 조회되므로 100%에 가까울수록 좋겠죠
RECYCLE은 50%정도면 적당하다고 합니다.
DEFAULT는 90%이상이면 좋은 상태라고 합니다.
이번에는 11g버전부터 지원하는 새로운 기능을 알아보겠습니다.
SHOW PARAMETER RESULT_CACHE를 통해 result_cache와 관련된 파라미터를 볼 수 있는데요
result_cahce_mode는 default로 MNUAL(수동)으로 되어 있습니다.
수동일때 자주사용하는 sql문의 힌트절에 /*+RESULT_CACHE*/을 주시면
이 기능을 사용하 실 수 있습니다.
이런 힌트를 준 sql문장은 result_cache영역에 따로 저장이되어서
파싱과정을 거치지않고 빠르게 sql문을 실행할 수 있죠
8i버전부터 지원한다는 keep기능과 비슷하네요 ㅎ
'컴퓨터 > Oracle' 카테고리의 다른 글
[Oracle]Tablespace 테이블스페이스 이동 시키기 (0) | 2014.07.24 |
---|---|
[Oracle]Multi Block Tablespace 오라클 멀티블락 테이블스페이스 (0) | 2014.07.24 |
[Oracle]Shared Pool tuning 공유풀 튜닝 (0) | 2014.07.24 |
[Oracle]분석 기능 statspack, AWR(Automatic Workload Repository) (0) | 2014.07.23 |
[Oracle]오라클 테이블 종류 (0) | 2014.07.23 |
댓글