본문 바로가기
컴퓨터/Oracle

[Oracle]Data Buffer Cache Tuning 오라클 데이터 버퍼캐시 튜닝

by TEATO 2014. 7. 24.
반응형

[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기능과 비슷하네요 ㅎ


반응형

댓글