Shared Pool 구성 요소

요소설명
Permanent AreaProcess목록,Session목록,Enqueue목록,Transaction목록
Library CacheSQL문을 수행하는데 필요한 모든 객체 정보
Dictionary CacheDictionary Data를 관리
Reserved Area동적 메모리 할당을 위한 공간

Sessions

1) Permanent Area중 하나로 session정보를 저장, 관리
2) instance 기동시에 할당
3) session parameter로 개수 설정
4) session 관련 뷰 ( X$KSUSE => V$SESSION, X$KSUSESTA => V$SESSTAT, X$KSUSECST => V$SESSION_WAIT )

Dictionary Cache

1) Dictionary Data를 메모리에 유지하기 위한 공간
2) Row 단위로 Data를 관리 (Row Cache)
3) user, objects, 저장공간등에 대한 정보 확인및 변경, DDL수행시 Dictionary Cache에 접근
4) 직접적인 Data Dictionary 변경 불가

Library Cache

1) SQL실행에 필요한 모든 정보를 관리
2) Hash Bucket -> Chain -> Handle -> Object의 구조 ( SQL Text에 Hash 함수 적용, Hash값에 의해 Hash Bucket할당)
3) Library Cache 객체

3-1) Handle : Library Cache의 스펙을 관리

3-2) LCO(Library Cache Object) : Library Cache의 컨텐츠를 관리

4) Library Cache 래치의 수 : CPU보다 큰 소수 중 가장 작은 소수
5) Library Cache 구조

  • 해쉬 함수에 의해 버켓이 결정되어, 하나의 버켓에는 여러 개의 핸들이 양방향 linked list로 구성
  • 하나의 핸들은 하나의 LCO를 포인터.
  • version count : 자식 LCO의 수 ( V$SQL_SHARED_CURSOR )

<SQL의 LCO구조>

<PL/SQL의 LCO구조>

문서에 대하여