11. Shared Pool
2010.05.30 23:19
▲ 오라클 구조
▲ 오라클 메모리 구조 - SGA(Shared Pool)
Shared Pool = Dictionary Cache + Library Cache
1. 딕셔너리 캐시 (Row Cache) - 오라클의 딕셔너리 정보를 저장하는 캐시영역
- 특징
- Row 단위로 Read / Write
- 오브젝트(테이블, 인덱스), 테이블 스페이스, 데이터 파일, 사용자, 제약, 시퀀스, DB Link 등 정보 캐싱
- 데이터 입출력을 빠르게 하기 위한 캐시영역
- 과정
- 객체 생성 → 딕셔너리 저장 → 로우 캐시 → 객체 사용
- 로우 캐시가 관리하는 엔트리 각각에 대해서 하나의 래치 할당
2. 라이브러리 캐시 - 사용자 SQL 및 실행계획이 저장된 캐시영역
오라클의 모든 동적 메모리를 관리하는 Heap Manager와 Library Cache Manager에 의해 관리
∵ Library Cache안에 저장된 Object를 가장 빠르게 찾고
저장하기 위한 방법
- 공유 SQL 영역
- 주어진 SQL 문장에 대해 Parse Tree와 실행 계획 소유
- 여러번 걸쳐 사용되는 SQL문장을 하나의 공유 SQL 영역에 저장하여 관리
- 전체 공유 풀이 꽉 차있을 시 LRU 알고리즘에 따라 메모리 사용 빈도가 낮은 SQL 제거
- PL/SQL 프러시저와 패키지
- SQL을 처리하는 것과 같이 PL/SQL 프로그램 Unit(Function, Procedure, Package, Anonymous Block) 처리
- SQL과 마찬가지로 구문 분석 후 컴파일 된 형태로 공유 SQL 영역에 저장
- 오라클은 프로그램 단위로 실행되는 세션에 할당된 값을 저장하기 위해 개별 SQL 영역에 메모리를 할당
→ 여기에는 지역변수, 전역변수, 패키지변수, 실행된 SQL에 대한 버퍼가 포함
→ 개별 사용자는 자신의 개별 SQL 영역에 분리된 복사본 소유
→ PL/SQL 프로그램의 구문분석 정보와 실행 계획은 공유 SQL 영역에서 사용
SQL 실행은 각 세션에 대한 개별 영역에 저장
→ 개별 사용자는 자신의 개별 SQL 영역에 분리된 복사본 소유
→ PL/SQL 프로그램의 구문분석 정보와 실행 계획은 공유 SQL 영역에서 사용
SQL 실행은 각 세션에 대한 개별 영역에 저장
※ 참고
- 소프트 파싱
- 전에 처리한 작업 중 같은 것이 있을 시 찾아서 파싱
- 하드 파싱
- 쿼리 구문 분석 및 오류 및 실행 권한 확인, 최적화(Optimization) 과정을 통한 실행 계획 생성
- 실행엔진이 가독 가능한 포맷팅
- 딕셔너리 캐시 ☞ 하드파싱 시 사용
- 라이브러리 캐시 ☞ 소프트파싱 시 사용
- SHARED_POOL_SIZE : 파라미터로 크기 설정
- 9i 이후는 (동적 파라미터로 변경 가능)
alter system set shared_pool_size = 100 M;
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
67 |
Front Page
![]() | 운영자 | 2010.05.16 | 155758 |
66 | 1 장. 오라클 아키텍처 | 운영자 | 2010.05.19 | 18763 |
65 |
1. 기본 아키텍처
[1] ![]() | 휘휘 | 2010.05.22 | 20857 |
64 | 3. 버퍼 Lock [1] | 휘휘 | 2010.05.23 | 16186 |
63 |
2. DB 버퍼 캐시
![]() | 휘휘 | 2010.05.23 | 22806 |
62 |
4. Redo
![]() | 휘휘 | 2010.05.23 | 12216 |
61 | 9. Snapshot too old | balto | 2010.05.30 | 9018 |
60 | 10. 대기 이벤트 | balto | 2010.05.30 | 8907 |
59 | 7. Consistent vs. Current 모드 읽기 | 휘휘 | 2010.05.30 | 11487 |
58 | 8. 블록 클린아웃 | 휘휘 | 2010.05.30 | 13200 |
» |
11. Shared Pool
![]() | 실천하자 | 2010.05.30 | 19406 |
56 |
5. Undo
![]() | 토시리 | 2010.05.30 | 19620 |
55 | 1. 트랜잭션 동시성 제어 | 실천하자 | 2010.05.30 | 9513 |
54 |
6. 문장수준 읽기 일관성
![]() | 토시리 | 2010.05.31 | 11301 |
53 | 2장. 트랜잭션과 Lock | 운영자 | 2010.06.01 | 7765 |
52 | 1. Explain Plan | 실천하자 | 2010.06.06 | 15590 |
51 | 2. AutoTrace | 실천하자 | 2010.06.06 | 9481 |
50 | 3장. 오라클 성능 관리 | 운영자 | 2010.06.06 | 7579 |
49 |
3. SQL 트레이스
![]() | balto | 2010.06.06 | 22083 |
48 | 4. DBMS_XPLAN 패키지 | balto | 2010.06.06 | 11322 |