오라클 11g 에서 추가된 Result Cache 관련 오라클 파라메터에 대해서 확인 해 보도록 하자.
SQL RESULT를 오라클 서버에 저장 할 수도 있고 , Client 측에 저장 할 수도 있다.
- Server Side Parameter
RESULT_CACHE_MODE ( ALTER SYSTEM / ALTER SESSION ) RESULT CACHE를 어떻게 운영할 것인지에 대한 파라메터로 MANUAL이 기본으로 설정 되어 있다. MANUAL : /*+ result_cache */ 힌트를 사용한 쿼리에 대해서 RESULT CACHE에 등록 FORCE : 사용되는 모든 SQL에 대하여 RESULT CACHE에 등록 /*+ no_result_cache */ 힌트를 사용하는 SQL문에 대해서는 RESULT CACHE에 등록하지 않음. AUTO : MANUAL 상에는 존재 하지 파라메터 설정 후 사용 가능 오라클 내부적으로 많이 사용되는 쿼리 및 설정된 범위를 넘는 쿼리에 대해서 RESULT CACHE에 등록 AUTO 관련 내부 파라메터로 다음과 같은 것들이 있음. _result_cache_auto_size_threshold : result cache auto max size allowed _result_cache_auto_time_threshold : result cache auto time threshold _result_cache_auto_execution_threshold : result cache auto execution threshold _result_cache_auto_time_distance : result cache auto time distance |
RESULT_CACHE_MAX_SIZE ( ALTER SYSTEM ) RESULT CACHE의 크기를 지정하는 파라메터. 기본값은 Shared_pool_size , sga_target, memory_target 값에 따라서 틀림 오라클 권장 메모리 크기 Shared_pool_size의 1% , Sga_target의 0.5% , Memory_target의 0.25% |
RESULT_CACHE_MAX_RESULT ( ALTER SYSTEM ) RESULT CACHE내에 저장되는 RESULT중 하나의 RESULT가 사용할 수 있는 최대 크기를 지정 함. 기본값은 RESULT_CACHE_MAX_SIZE의 5%값 임. |
RESULT_CACHE_REMOTE_EXPIRATION ( ALTER SYSTEM / ALTER SESSION ) REMOTE OBJECT에 대한 캐싱 여부 설정. 설정 단위는 분(minute)이다. 기본값은 0 이다. 0으로 설정 시 Remote Object관련 SQL에 대해서는 캐싱 하지 않음. 0 이외의 값으로 설정 시 해당 시간(분) 동안 Remote Object에 대한 SQL 결과를 캐싱 함. 이 경우 Remote Object에 대한 변경이 있을 경우 반영이 되지 않고 캐싱 된 데이터를 사용 할 수 있음. |
_RESULT_CACHE_BLOCK_SIZE SQL Result를 저장하는데 사용되는 블록의 기본 크기 설정. 기본값은 1024(1K) 임 _RESULT_CACHE_TIMEOUT 하나의 세션에서 SQL RESULT를 획득하기 위하여 최대로 대기 할 수 있는 시간(초) 기본값은 60초 임. |
- Client Side Parameter
CLIENT_RESULT_CACHE_SIZE Client Process가 사용할 수 있는 최대 RESULT CACHE 크기를 지정. 기본값은 0 임. OCI_RESULT_CACHE_MAX_SIZE 값이 Client에 설정 될 경우 그 값으로 대체 됨. |
CLIENT_RESULT_CACHE_LAG Client에 캐시 되어 있는 RESULT 에 대해서 얼마 동안 유용하게 사용 할지에 대한 설정. Milliseconds 캐시된 데이터 중 동일 쿼리를 재 사용하기 전에 기존에 캐시 되어 있던 데이터가 얼마 동안 유용한 데이터로 인정 될지에 대한 시간설정 값임. 해당 시간 전에 동일 쿼리 수행 시 관련 데이터 베이스 변경사항이 존재 하였으면 새로운 데이터로 변경되어 캐시됨 |