- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=6259187&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
Shared Pool 구성 요소
요소 | 설명 |
---|---|
Permanent Area | Process목록,Session목록,Enqueue목록,Transaction목록 |
Library Cache | SQL문을 수행하는데 필요한 모든 객체 정보 |
Dictionary Cache | Dictionary 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구조>
문서에 대하여
- 최초작성자 : 이경화
- 최초작성일 : 2010년 09월 07일
- 이 문서는 오라클클럽 코어 오라클 데이터베이스 스터디 모임에서 작성하였습니다.
- 이 문서의 내용은 (주)엑셈에서 출간한 'PRACTICAL OWI IN ORACLE 10G'와 'Advanced OWI in Oracle 10g'를 참고하였습니다.
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=6259187&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.