Oralce PGA

 

Program Global Area (PGA) 란?

  • 각 Process마다 개별적으로 저장해야 할 내용을 담는 공간.
  • 주로 정렬 관련 작업등이 이루어진다.
  • Server Process나 백그라운드 Process들은 전부 가각의 PGA를 가지고 각자의 용도에 맞게 사용.
  • 서버 프로세스에 생성되며 오라클에서 사용하는 메모리 영역
  • 데이터베이스에 접속하는 모든 유저에게 할당되어 각각의 서버 프로세스가 독자적으로 사용하는 오라클 메모리 영역
  • 하나의 유저 프로세스에 하나의 서버 프로세스가 할당되며, 또한 하나의 서버 프로세스는 하나의 PGA를 생성한다.

 

1. Private SQL Area

  Private SQL Area는 Persistent Area와 Runtime Area로 구성

    • Persistent Area : Bind 변수 값을 저장해두는 공간입니다.
    • Runtime Area : SQL문장을 수행하는 도중에 데이터를 임시로 저장해야 할 경우 사용하는 공간입니다.

 

2. SQL Work Area

 Sort 관련 작업이나 Hash 관련 작업이 있을 경우 이 곳에서 작업을 수행.

    • 8i까지는 수동으로 설정을 해줬지만, 9i 부터는 PGA 크기를 Oracle이 자동으로 관리합니다.
    • PGA_AGGREGATE_TARGET (PGA의 총량을 지정하는 파라미터) 의 값을 설정 한 뒤에 WORKAREA_SIZE_POLICY 파라미터를 AUTO로 설정하면 Oracle이 자동으로 PGA를 관리합니다.

 

3. PGA 용량 계산법

– OLTP 시스템 환경

PGA_AGGREGATE_TARGET = (<총 물리메모리 용량> * 80%) * 20%

– DSS 시스템 환경

 PGA_AGGREGATE_TARGET = (<총 물리메모리 용량> * 80%) * 50%

 

현재 서버의 PGA 와 관련된 값을 조회하려면 v$pgastat 뷰를 조회 하면 됩니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다.