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 뷰를 조회 하면 됩니다.
최신 댓글