#title PGA(Program Global Area) [[TableOfContents]] ==== PGA(Program Global Area)의 개념 ==== * 서버 프로세스가 요청에 대한 내용을 수행하기 위해 필요한 메모리 공간 * 각 서버프로세스마다 독립적인 공간(서버 프로세스마다 PGA를 가진다.) 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을 저장하는 공간 ==== 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크기