이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

버전 1 다음 »

먼저 PGA와 UGA 영역에 관하여 알아볼 것이다. PGA는 특정 프로세스에 의해 할당된 그 프로세스만을 위한 메모리 영역이다. 이 메모리 영역에는 다른 프로세스가 접근하는 것이 불가능한, 할당 받은 프로세스만이 사용할 수 있는 영역이된다. 즉, Shared Memory 영역에 자리잡게되는 SGA공간과는 별개의 영역으로 자리잡게된다. UGA는 세션 정보가 저장되는 영역이다. 따라서 특정 세션에서 특정 UGA 영역에 언제든 접근 가능해야 한다. 그러한 이유로 오라클 접속 방식이 어떻게 설정 되어있는지에 따라 UGA영역이 자리잡는 위치가 달라지게 된다. 만약 접속 방식으로 dedicated server 방식을 선택하였다면, 사용자가 접속할 때 마다 (dedicated) 서버 프로세스가 생성되게 된다. 이 서버 프로세스 역시 메모리를 할당 받게 될 것이며, 이는 이 서버 프로세스의 고유한 메모리 영역, 즉, PGA 영역이 된다. 이때 사용자 프로세스와 직접 통신하는 역할을 하는 것은 (dedicated) 서버 프로세스가 되며, 이 세션 정보를 다른 프로세스와 공유할 필요가 없다. 따라서 dedicated server 방식으로 설정되어 있다면, PGA 영역 안에 UGA 영역이 자리잡게 된다. 그리고 만약 접속 방식으로 shared server 방식으로 설정하였다면, 사용자 프로세스는 (shared) 서버 프로세스와 직접 소통하게 되지 않는다. 사용자 프로세스는 dispatcher 프로세스와 통신을 하게 되며, 다시 dispatcher 프로세스가 실제로 작업해야되는 내용을 (shared) 서버 프로세스에 전달해주게 된다. 사용자에게 반납해야될 메세지 또한 서버 프로세스가 dispatcher에 전달을 해주게 되고, 사용자는 dispatcher로 부터 결과값을 받게 되는 것이다. 사용자의 요청사항이 서버 프로세스로 전달이 되고, 내부적인 동작을 마친 뒤의 결과값을 다시 서버 프로세스로부터 받아 온다라는 전체적인 동작 방식에는 차이가 없다. 단 shared server 방식을 사용하게되면 사용자 프로세스와, 서버 프로세스 사이에 dispatcher가 위치하게 되고, dispatcher와 서버 프로세스 사이의 IPC 통신이 필요하게 된다. 따라서 Shared Memory 영역에 자리잡고 있는 SGA 영역에 UGA 영역이 자리잡게 된다.

 

수동 PGA 메모리 관리(Manual PGA memory management) : 자동 PGA 메모리 관리(Automatic PGA memory management) :

PGA_AGGREGATE_TARGET MEMORY_TARGET

 

수동 PGA 메모리 관리

SORT_AREA_SIZE : SORT_AREA_RETAINED_SIZE : HASH_AREA_SIZE :

자동 PGA 메모리 관리

사용 편의성 수동 할당은 '하나를 결정하면 모든 것을 만족시킨다' 전략 메모리 제어

WORKAREA_SIZE_POLICY PGA_AGGREGATE_TARGET 메모리 할당방식 결정하기 PGA_AGGREGATE_TARGET을 사용한 메모리 제어

 

수동/자동 메모리 관리기법의 선택


PGA와 UGA 요약

지금까지 두 가지 메모리 구조(PGA,UGA)에 대해 살펴보았다. 이제 PGA가 특정 프로세스의 전용 공간임을 이해했을 것이다. PGA는 오라클 dedicated server나 shared server가 세션에 독립적으로 존재하기 위해 필요한 다양한 요소들의 집합이다. PGA는 힙 형태의 메모리 구조다. UGA 또한 힙 형태의 메모리 구조로서 다양한 형태로 세션과는 종속적인 구조로 정의할 수 있다. dedicated server 접속 방식으로 오라클에 접속할 때 사용하는 PGA 안에 UGA가 위치해 있게 되고, shared server접속 방식의 경우에는 UGA는 SGA 안에 위치하게 된다.

레이블 (0)

  • 레이블 없음

댓글  (0)

첨부 파일  (0)

첨부 파일 추가하기
공유된 파일이 아직 없습니다.