1. 9i
9i부터는 "Dynamic"하게 메모리 관련 파라미터의 설정 값을 변경하고 적용할 수 있게 되었다. 'alter system set' 을 이용하면 인스턴스의 재시작 없이 즉시 적용이 가능하게 되었다.
단 모든 항목들을 합친 값이 SGA_MAX_SIZE보다 클 수는 없다. 예를 들어 Shared Pool의 값을 늘리고 싶다면 다른 파라미터의 값을 줄인 후에 늘려주어야 한다.
PGA를 관리하는 방법도 자동 관리모드로 변경되었다. 이로 인해 많은 점이 편리해졌지만 문제가 되는 점도 생겼다.
하나의 세션이 사용할 수 있는 PGA용량이 정해져 있다는 것이다. 대량의 데이터를 Sort나 Hash할 경우 PGA의 용량이 작업속도에 크게 영향을 끼치는데 PGA 전체 용량이 아무리 커도 한 세션이 사용할 수 있는 값이 정해져 있기 때문에 문제가 생긴다.
2. 10g
10g부터는 SGA 주요 구성요소들의 크기를 오라클이 스스로 변경할 수 있는 Automatic Shared Memory management(ASMM)이 등장한다.
이 기능은 Redo log buffer를 제외한 나머지 구성요소들의 크기를 상황에 맞도록 스스로 변경하는 기능이며 이를 수행하기 위해 새로 등장한 백그라운드 프로세서가 MMAN이다.
MMAN이 SGA의 양을 할당하고 관리할 때 기준으로 사용하는 파라미터가 SGA_TARGET이다. SGA_TARGET에 설정된 용량의 범위 안에서 메모리를 할당하고 관리한다.
물론 SGA_TARGET은 SGA_MAX_SIZE에서 Log_buffer 값을 제외하고 예약공간 값을 제외한 크기를 초과할 수는 없다.
3. 11g
11g에서는 SGA뿐만 아니라 PGA까지 한꺼번에 자동으로 관리하는 기술인 Automatic Memory Management(AMM)이 등장한다.
AMM을 위해 새로 생긴 두 개의 파라미터가 있다.
1) MEMORY_TARGET
AMM으로 관리할 메모리의 총량을 지정할 수 있다. 이 파라미터는 SGA와 PGA를 모두 관리한다. 최대값은 MEMORY_MAX_SIZE이며 기본값은 0이다.
2) MEMORY_MAX_TARGET
MEMORY_TARGET 값이 최대로 증가될 값을 지정하는 용도이다. 별다른 설정을 해주지 않으면 MEMORY_TARGET값과 동일하게 된다.
'오라클 > 이론 및 실습' 카테고리의 다른 글
DBMS_JOB & DBMS_SCHEDULER (0) | 2019.07.04 |
---|---|
사용자 관리 (0) | 2019.07.04 |
Oracle 저장 구조 - Extent와 Segment (0) | 2019.07.02 |
Oracle 저장 구조 - block(2) (0) | 2019.07.02 |
Oracle 저장 구조 - block(1) (0) | 2019.07.01 |