메모리 구조중급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와 함께 봐야 한다.