메뉴 건너뛰기

bysql.net

11._Shared_Pool

2012.03.19 09:19

박영창 조회 수:3163

11. Shared Pool

Shared Pool = Dictionary Cache + Library Cache

(1) 딕셔너리 캐시

오라클의 딕셔너리 정보를 저장해두는 캐시 영역으로 입출력 특성때문에 ‘row cache’라고도 부름.

※ sequence cache 옵션
   nocache 옵션으로 시퀀스를 운용할 경우 nextval 를 호출할 때 마다 row cache에 접근
   이 부분에서도 경합이 발생할 수 있기 때문에 cache 옵션을 주어서 이 부분의 경합을 해소.
   default value = 20

v$rowcache 의 hitratio 를 모니터링하여 수치가 낮게 나온다면 shared pool 사이즈를 증가시킬 것을 고려.



v$rowcache TYPE=’PARENT’ 엔트리와 v$latch_children ‘row cache objects’래치 개수를 조회하면 항상 값이 일치함. row cache에 관리되는 엔트리 각가에 대해 하나의 래치가 할당돼 있음을 짐작.

(2) 라이브러리 캐시

사용자가 실행한 SQL과 execution plan 을 저장하는 캐시 영역.

hard parsing : 쿼리 구문 분석, 문법 오류 및 실행 권한 체크, 최적화, 실행계획 생성, SQL 실행 엔진이 실행할 수 있는 형태로 포매팅.
▶ 최적화가 hard parsing 중 시간이 가장 오래 걸리는 작업.

반복적인 하드파싱을 최소화하기 위해서 만든 캐시 공간.