메모리 구조중급Oracle 전용

SGA (System Global Area)

오라클 인스턴스의 모든 서버 프로세스가 공유하는 메모리 영역

정의

SGA는 인스턴스 시작 시 할당되는 공유 메모리 영역이다. 주요 구성 요소는 Database Buffer Cache(데이터 블록 캐시), Shared Pool(SQL/딕셔너리 캐시), Redo Log Buffer(리두 변경 기록), Large Pool, Java Pool. AMM(Automatic Memory Management)이나 ASMM(Automatic Shared Memory Management)을 통해 자동 조정되거나 수동으로 크기를 지정할 수 있다.

왜 중요한가?

SGA 부족은 디스크 I/O 폭증의 직접 원인. Buffer Cache가 작으면 같은 블록을 반복해서 디스크에서 읽고, Shared Pool이 작으면 SQL 파싱 비용이 폭증한다. 성능 진단의 출발점.

틀리기 쉬운 포인트

  • !SGA와 PGA를 혼동하여 메모리 할당 문제 진단 실패
  • !Shared Pool 크기가 부족하면 Hard Parse가 빈번해져 성능 저하
  • !Buffer Cache Hit Ratio만으로 성능을 판단하려는 오류

예시

  -- SGA 상태 확인 (DBA 권한)
SELECT *
FROM v$sgainfo;

성능 포인트

!Hit Ratio만 보고 판단하지 말 것. AWR/Statspack의 Top Events와 함께 봐야 한다.

관련 개념

관련 문제 풀어보기

관련 카테고리