하나의 오라클 세션에 할당할 수 있는 메모리는 PGA_AGGREGATE_TARGET를 통해 설정 가능하다. 주지해야 할 것은 PGA_AGGREGATE_TARGET 값이 한개의 오라클 세션값이 가지는 최대 메모리 크기가 아니라는 것이다. 즉 PGA_AGGREGATE_TARGET을 32GB로 설정하더라도 32G를 하나의 세션이 점유하여 사용하지 않는다.
PGA_AGGREGATE_TARGET 설정값을 기반으로 Real Memory 의 사용값은 hidden parameter로 설정이 되며 , 이 hidden parameter를 통해 실제로 세션이 사용되는 메모리 값이 결정되며 보통 OLTP 세션에서는 최대 사용 가능한 세션 메모리는 PGA_AGGREGATE_TARGET의 5% 정도임.
주요 hidden parameter
1. _pga_max_size :
한개의 세션이 PGA영역에서 최대 사용가능한 메모리
단 Serial Operation일 경우에 적용되며 Parallel Operation일 경우는 _smm_px_max_size를 따른다.
2. _smm_max_size :
한개의 세션이 단일 operation에서 최대 사용 가능한 메모리.
여기서 단일 Operation 이란 sort 또는 hash join과 같이 PGA를 사용하는 Operation 중 하나라는 뜻임. 즉 _pga_max_size는 PGA내에서 수행하는 모든 Operation 들이
최대 사용가능한 메모리, _smm_max_size는 단일 Operation이 사용 가능한 메모리임.
9i 이전에는 이런 단일 operation에 대한 max 메모리 설정이 Default 였음. 즉 SORT_AREAR_SIZE , HASH_AREA_SIZE 에 해당됨.
9i 이전에는 이런 단일 operation에 대한 max 메모리 설정이 Default 였음. 즉 SORT_AREAR_SIZE , HASH_AREA_SIZE 에 해당됨.
Parallel Operation 일 경우에는 하나의 PQ가 단일 Operation에서 최대 사용가능한 메모리임. _smm_px_max_size 와 결합하여 PQ시 사용 메모리가 결정됨.
3. _smm_px_max_size
PQ 수행 시 DOP가 5 이상일 경우 _smm_px_max_size가 PGA 크기에 영향을 미침. PQ 처리시 하나의 세션이 최대 사용 가능한 메모리.
_smm_px_max_size가 12G 일 경우 _smm_max_size가 1G , DOP 가 100개라면 세션이 차지하는 메모리는 12G로 제한된다. 즉 각 PQ가 가지는 _smm_max_size는 전체 12G를 넘지 않는 정도에서 동적으로 크기가 제한된다.
4. Hidden parameter 로 해당 파라미터를 조회 할 경우 _smm_max_size 와 _smm_px_max_size는 KB 단위로 보이므로 유의할 것.
5. 크기 설정
Default 설정 크기는 아래와 같음 ( 정확하게 아래 룰을 따르는지는 추가 확인 필요 )
5.1 _pga_max_size 의 경우는 PGA_AGGREGATE_TARGET의 5%가 부여됨. (PGA_AGGREGATE_TARGET의 크기가 매우 커지면 3%정도로 추정됨)
5.2 _smm_max_size 는 _pga_max_size의 50% 임.
5.3 _smm_px_max_size는 PGA_AGGREGATE_TARGET의 50% 가 부여됨.
5.4 PGA_AGGREGATE_TARGET을 64G로 설정했을 때
_pga_max_size 는 2G, _smm_max_size 는 1G , _smm_px_max_size는 32G로 셋팅됨.
'RDBMS > Oracle' 카테고리의 다른 글
LOG_ARCHIVE_DEST_n 과 LOG_ARCHIVE_DEST/LOG_ARCHIVE_DUPLEX_DEST 의 차이 (0) | 2016.09.29 |
---|---|
Flash Recovery Area ( FRA ) 설정하는 방법 (0) | 2016.09.29 |
ASMM( Automatic Shared Memory Management) 와 AMM( Automatic Memory Management) 설명 (0) | 2016.09.19 |
테이블 통계 정보 수집 수행 후 SQL 실행계획 즉시 반영하는 법 (0) | 2016.09.12 |