2009년 7월 26일 일요일

Shared pool

Shared pool operation

a. library cache : 파싱된 sql

b. dictionary cache : 객체번호, 주소

c. shared pool이 부족하면 기존의 내용 지워짐

d. memory chunk가 생성된다.

   

▣ shared pool에 속한 영역의 할당량 혹은 사용가능 용량

   

▣ KGH : 커널에서 가지고 있는 heap영역 -> OS : 전체 양에서 사용량을 빼고 남는 메모리, 사용할수 있는 메모리

   

아래와 같이 용량을 비워둠

작은 용량의 청크가 들어오면 빈 공간을 free list로 날리고 할당할 수 있다

큰 용량의 청크가 들어왔을 때 사용하기 위해 reserved area를 미리 존재한다.

   

   

select * from x$ksuse where addr='30F0A9B4';

이렇게 사용하면 내용이 많기 때문에 내부 질의 볼때는 print_table.sql 질의를 사용한다.

   

   

커서 적중 부분 설정값 확인

   

   

▣ Cursor_sharing 사용하지 않았을 경우

   

Cursor sharing 사용

   

@cursor_sharing_test1과 2의 결과 비교해 볼것

질의

S SYS> select * from v$system_event where event='latch: library cache';

   

EVENT

--------------------------------------------------------------------------------------------------------------

TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED AVERAGE_WAIT TIME_WAITED_MICRO EVENT_ID WAIT_CLASS_ID WAIT_CLASS#

----------- -------------- ----------- ------------ ----------------- ---------- ------------- -----------

WAIT_CLASS

--------------------------------------------------------------------------------------------------------------

latch: library cache

931 0 1820 1.95 18197060 589947255 3875070507 4

Concurrency

reloads

   

invalidations

   

   

   

Terminology

  1. Gets : 적중횟수(soft parsing+cursor 적중포함)
  2. Pins : 실행횟수
  3. Reloads : 없어서 비적중
  4. Invalidation : 수정되서 비적중

    ※ 3, 4 : hard parsing

댓글 없음:

댓글 쓰기