Chapter3 - Oracle 메모리 구조

2015. 4. 5. 19:13

초보자를 위한 Oracle 10g


Chapter3 - Oracle 메모리 구조


- 2개의 메모리 종류

SGA(System Global Area) - 모든 사용자가 공유 가능하여 사용

PGA(Program Global Area) - 사용자마다 공유하지 않고 개별적으로 사용


(1)PGA

- 정의: 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역으로, 데이터베이스에 접속하는 모든 유저에게 할당된다.

- 유저 프로세스 <-> 서버 프로세스 <-> PGA

- PGA의 구조

1. 정렬 공간(Sort Area)

Order By 또는 Group By 등의 정렬을 수행하기 위한 공간

*메모리 정렬 불가 시 디스크 이용


2. 세션 정보(Session Information)

유저 프로세스의 세션 정보를 저장


3. 커서 상태 정보(Cursor State)

해당 SQL의 파싱(Parsing)정보가 저장되어 있는 주소(Cursor)를 저장


4. 변수 저장 공간(Stack Space)

바인드 변수(Bind Variable) 사용 시 해당 바인드 변수를 저장


- PGA의 관리 --> 파라미터 통해서 관리


1. WORKAREA_SIZE_POLICY

MANUAL 또는 AUTO로 설정 가능 (10g는 Default= AUTO)

 MANUAL --> SORT_AREA_SIZE 파라미터로 정렬 공간 설정됨

 AUTO --> PGA_AGGREGATE_TARGET 파라미터로 전체 PGA 크기 설정됨


2. SORT_AREA_SIZE

정렬 공간에 대한 크기를 설정하는 파라미터


3. PGA_AGGREGATE_TARGET

모든 세션의 PGA 크기의 합을 설정하는 파라미터 (9i부터 사용 가능)

--> 자동 PGA 조정 기능


* 관리Tip: 평소 접속하는 세션 수 및 각 세션의 PGA 사용량 크기를 파악하여 적절한 값 설정이 필요


PGA 크기 확인 --> V$PROCESS 데이터 딕셔너리 참조

- PGA_USED_MEM - 현재 프로세스가 사용중인 PGA 크기

- PGA_ALLOC_MEM - 프로세스에 할당된 PGA 크기

- PGA_MAX_MEM - 프로세스가 사용한 최대 PGA 크기

곰돌곰둘 Oracle_DB_Unix admin/(1)초보자를 위한 Oracle 10g