메모리의 종류
SGA(System Global Area) - 모든 사용자가 공유 가능한 메모리 영역.
PGA(Progrma Global Area) - 서버프로세스가 독자적으로 사용 가능하는 메모리 영역.
PGA
pga는 ¹)유저 프로세스와 서버프로세스가 연결될때, 서버프로세스에 생성되며 오라클에서 사용되는 독립적인 개념의 메모리 영역입니다.아래 그림과 같이 사용자가 sql문을 입력할경우 유저프로세스는 서버 프로세스에게 sql문을 질의 내용을 전달하고 대기합니다. 이후 서버프로세스는 sga영역에서 해당 작업을 진행후 다시 유저프로세스에게 질의에 대한 답을 전달합니다. 유저프로세스의 요청에대해 요청내용 및 기타 정보를 저장하기 위해 서버 프로세스는 자신만의 메모리 공간인 PGA를 사용합니다.
¹)유저 프로세스 : 사용자(user)가 오라클에 접속하게되면 만들어지는 프로세스로 오라클 내부적으로 사용됩니다. 사용자가 직접 DB SERVER에 콘솔로 연결 했을때 뿐 아니라 여러가지 DB연결 프로그램을 통해 오라클 데이터 베이스에 접속을할때 생성되며, DataBase에 연결이되면 모든 정보를 서버프로세스에게 전달한다.
PGA구조
PGA의 구체적인 구조는 4가지 영역으로 나뉘어 지는데, 그것은 다음과 같습니다.
1. Sort Area(정렬공간) - Order by 나 Group by 와같은 sql문을 실행할때 정렬을 수행하기 위한 공간으로, 이공간안에서만 정렬이 일어나면 메모리 정렬이라고하고, 정렬 공간이 부족하면 디스크를 이용해 정렬한다.
2. Session Information(세션정보) - 서버 프로세스에 의해 추출된 결과 값을 전달하기위해 필요한 유저 프로세스의 세션 정보를 저장한다.
3. Cursor State(커서정보) - 해당 SQL의 파싱(Parsing) 정보가 저장되어 있는 주소를 저장한다.
4. Stack Space(변수 저장 공간) - SQL문장에 바인드 변수(Bind Variable)를 사용했을 경우 해당 바인드 변수를 저장하는 공간이다.
PGA 의 파라메터
1. WORK_AREA_SIZE - Manual : SORT_AREA_SIZE 파라메터를 이용하여 정렬공간을 설정합니다.
AUTO : PGA_AGGREGATE_TARGET 파라메터를 이용하여 정렬공간을 설정 합니다.
2. SORT_AREA_SIZE : 정렬공간에 대한 크기를 설정하는 파라메터 입니다. (가장 많이 사용된다고한다.)
3. PGA_AGGREGATE_TARGET - 모든 세션의 PGA 크기의 합을 설정하는 파라메터. PGA_AGGREGATE_TARGET 파라메터에서 지정한 크기까지 오라클이 PGA를 자동으로 관리합니다.
* 참고 도서 : [초보자를 위한 오라클 1og]
### 도움이 되셧다면 댓글이나 방명록에 글을 남겨 주세요. ###
'오라클 > 이론 및 정보' 카테고리의 다른 글
[펌]oracle 여러가지 조회방법 (1) | 2012.05.23 |
---|---|
[펌]Invalid Object란? (0) | 2012.05.22 |
오라클 설치시 환경 변수값 설명 (0) | 2011.09.15 |
오라클 Upgrade와 Patch의 차이점 (0) | 2011.09.13 |
오라클에서의 Patch 정의 및 종류 (1) | 2011.09.13 |