Shared Pool

CHOI.DA·2025년 4월 21일

DB

목록 보기
2/7
post-thumbnail

[핵심 내용]

  1. Shared Pool은 SQL, PL/SQL 실행 계획 및 데이터 딕셔너리 정보를 공유하여 재사용함으로써
    데이터베이스 성능을 크게 향상시키는 핵심 메모리 영역이다.
  2. Shared Pool에서 Soft Parse는 이미 파싱된 SQL 및 실행 계획을 재사용하므로,
    매번 파싱 과정을 거치는 Hard Parse보다 성능 면에서 훨씬 유리하다.
  3. SELECT문을 처리과정 3단계
    Parse > Execute > Fetch



[Shared Pool]


Parsing 단계에서 사용되고 동일한 문장이 반복적으로 들어왔을 때,
Parse 작업을 하지 않고 바로 사용할 수 있도록 공유의 목적으로 사용되고 있다.

Shared Pool의 크기가 너무 작으면 자주 메모리에서 밀려나 재파싱이 빈번해지고,
너무 크면 메모리 낭비가 될 수 있다.
때문에 적절한 크기 설정이 중요하다.

Shared Pool을 효율적으로 관리하는 것은
오라클 데이터베이스의 전체적인 성능에 직접적인 영향을 미친다.
재사용률을 높여 불필요한 자원 소모를 줄이고, 빠른 응답 속도를 유지하는 데 필수적이다.
’성능 향상의 핵심’

Shared Pool(3가지 구성요소)
1) Library Cache: parsing된 정보를 저장
2) Data Dictionary Cache: 데이터베이스 메타데이터를 저장, Hard Parse 작업을 빨리 해주기 위해
3) Result Cache: 실행된 결과를 저장, 결과로 적은 내용을 반환해주는 값을 저장해두고 바로 읽기 위해


[SELECT process]


사용자가 SELECT 구문 쿼리를 입력하면 파싱을 하기 전에 먼저 shared pool에 들린다.
여기에서 이전에 같은 내용으로 들어온 내용이 있는지 확인한다.
있다면 parse 작업을 건너뛰고(soft parse) execute 과정으로 넘어가고
없다면 parse 작업을 수행한다(hard parse).

  1. Parsing: SQL 구문을 분석하여 실행을 준비하고, 이전에 처리된 적이 있는지 체크
    1) Syntax Check: SQL 문법 오류 여부 체크
    2) Semantic Check: 테이블, 컬럼 등 객체가 실제로 존재하는지, 접근 권한이 있는지 등 체크
    3) Shared Pool Check: shared Pool의 라이브러리 캐시에 이미 존재하는지 체크
    4) 있다면 바로 실행 단계로 넘어가는 soft parse 실행, 없다면 hard parse 실행 > 성능에는 soft parse!
  1. 실행(Execution): 최적의 데이터 접근 방법을 결정하고, 필요에 따라 디스크에서 데이터 읽기 수행
    1) Execution Plan 생성: 어떤 인덱스를 사용할지, 테이블 조인 순서는 어떻게 할지 등을 계획
    2) 데이터 접근: 실행 계획에 따라 데이터 파일에서 필요한 데이터를 읽어와 데이터베이스 버퍼 캐시에 저장
  1. 인출(Fetch): 조회된 결과를 사용자에게 전달, select 과정에서만 있는 단계

0개의 댓글