Contents

[-]
1 PGA(Program Global Area)의 개념
2 PGA(Program Global Area)의 관리


1 PGA(Program Global Area)의 개념 #

  • 서버 프로세스가 요청에 대한 내용을 수행하기 위해 필요한 메모리 공간
  • 각 서버프로세스마다 독립적인 공간(서버 프로세스마다 PGA를 가진다.)

Upload new Attachment "PGA(ProgramGlobalArea")/pga01.png

  • Sort Area – ORDER BY, GROUP BY등의 정렬을 수행하기 위한 공간으로, 정렬 공간이 부족하다면 디스크를 사용하게 된다. (메모리만 사용한 정렬:"메모리 정렬" 이라 부름)
  • Session Information – 요청에 의한 결과를 전달하기 위해 필요한 User Process의 세션 정보 저장
  • Cursor State – SQL Parsing 정보 저장되어 있는 주소를 저장
  • Stack Space – SQL문 Bind Variable을 사용했을 경우 해당 Bind Variable을 저장하는 공간

2 PGA(Program Global Area)의 관리 #

파라미터
  • WORKAREA_SIZE_POLICY
    • MANUAL – SORT_AREA_SIZE 파라미터의 값에 의존
    • AUTO (기본값)
  • SORT_AREA_SIZE
    • 정렬공간의 크기 설정
  • PGA_AGGREGATE_TARGET
    • 모든 세션의 크기의 합을 설정
    • 설정된 값보다 더 많은 PGA를 요구할 경우 메모리를 할당하지 못하므로 에러 발생

모니터링
  • V$PROCESS 데이터 딕셔너리 뷰
    • PGA_USED_MEM : 프로세스가 사용하는 현재 PGA크기
    • PGA_ALLOC_MEM:프로세스에 할당된 PGA크기(사용후 시스템에 반환하지 않는 메모리 포함)
    • PGA_MAX_MEM : 프로세스가 사용한 최대 PGA크기