메뉴 건너뛰기

bysql.net

11. Shared Pool

2010.05.31 08:19

실천하자 조회 수:18509

Oracle_architecture.jpg


▲ 오라클 구조



shared_pool.jpg


▲ 오라클 메모리 구조 - 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 실행은 각 세션에 대한 개별 영역에 저장


※ 참고


  • 소프트 파싱
    • 전에 처리한 작업 중 같은 것이 있을 시 찾아서 파싱
  • 하드 파싱
    • 쿼리 구문 분석 및 오류 및 실행 권한 확인, 최적화(Optimization) 과정을 통한 실행 계획 생성
    • 실행엔진이 가독 가능한 포맷팅
  • 딕셔너리 캐시 ☞ 하드파싱 시 사용
  • 라이브러리 캐시 ☞ 소프트파싱 시 사용
  • SHARED_POOL_SIZE : 파라미터로 크기 설정
  • 9i 이후는 (동적 파라미터로 변경 가능)
    alter system set shared_pool_size = 100 M;

번호 제목 글쓴이 날짜 조회 수
67 Front Page file 운영자 2010.05.17 154864
66 1 장. 오라클 아키텍처 운영자 2010.05.20 17838
65 1. 기본 아키텍처 [1] file 휘휘 2010.05.23 19896
64 3. 버퍼 Lock [1] 휘휘 2010.05.24 15223
63 2. DB 버퍼 캐시 file 휘휘 2010.05.24 21914
62 4. Redo file 휘휘 2010.05.24 11313
61 9. Snapshot too old balto 2010.05.30 8099
60 10. 대기 이벤트 balto 2010.05.30 8009
59 7. Consistent vs. Current 모드 읽기 휘휘 2010.05.31 10525
58 8. 블록 클린아웃 휘휘 2010.05.31 12280
» 11. Shared Pool file 실천하자 2010.05.31 18509
56 5. Undo file 토시리 2010.05.31 18634
55 1. 트랜잭션 동시성 제어 실천하자 2010.05.31 8629
54 6. 문장수준 읽기 일관성 file 토시리 2010.06.01 10431
53 2장. 트랜잭션과 Lock 운영자 2010.06.01 6893
52 1. Explain Plan 실천하자 2010.06.06 14661
51 2. AutoTrace 실천하자 2010.06.06 8597
50 3장. 오라클 성능 관리 운영자 2010.06.06 6692
49 3. SQL 트레이스 file balto 2010.06.06 21175
48 4. DBMS_XPLAN 패키지 balto 2010.06.06 10461