- AMM (Automatic Memory Management)
- ASMM (Automatic Shared Memory Management)
- 2가지 메모리 관리기법
AMM은 Oracle에서 전체 데이터베이스 메모리(SGA와 PGA)를 자동으로 관리하는 방식
- Oracle 11g부터 도입된 AMM은 SGA (System Global Area)와 PGA (Program Global Area)의 크기를 자동으로 조정하여, 사용 패턴에 따라 데이터베이스 성능을 최적화합니다.
SGA: 데이터베이스의 공유 메모리 영역으로, 캐시된 데이터나 SQL 문 등 여러 사용자가 공동으로 사용하는 메모리 영역입니다.
PGA: 각 세션별로 할당되는 메모리로, 소트 연산, 해시 연산 등에서 사용되는 메모리입니다.
전체 메모리 관리: DBA가 직접 메모리 할당을 조정할 필요 없이, Oracle이 자동으로 SGA와 PGA 간의 메모리 사용량을 관리합니다.
동적 조정: 데이터베이스가 실행 중일 때 메모리 사용 패턴을 분석하고, 필요한 메모리 크기를 동적으로 조정합니다.
MEMORY_TARGET
: 데이터베이스 전체 메모리 크기를 설정합니다. 이 값은 SGA와 PGA를 모두 포함한 전체 메모리의 크기를 의미합니다.
MEMORY_MAX_TARGET
: 데이터베이스가 사용할 수 있는 최대 메모리 크기를 설정합니다.
- ASMM은 Oracle에서 SGA만을 자동으로 관리하는 방식
- AMM과 다르게 PGA는 수동으로 관리되고, SGA의 구성 요소들인 shared pool, database buffer cache, large pool 등의 크기를 자동으로 관리
SGA_TARGET
: SGA 영역의 전체 크기를 정의합니다. 이 값은 SGA 내에서 각 영역의 메모리 할당을 자동으로 조정합니다.
SGA_MAX_SIZE
: SGA가 사용할 수 있는 최대 메모리 크기를 설정합니다.
AMM은 SGA와 PGA 전체 메모리를 자동으로 관리하는 방식이고, ASMM은 SGA 메모리만 자동으로 관리하는 방식이다.