IT/Database

[Oracle 튜닝] PGA(Program Global Area) 최적화 전략

멋진 선배 2025. 1. 27. 07:16
반응형

PGA란 무엇인가?

PGA(Program Global Area)는 오라클 데이터베이스의 각 서버 프로세스에 할당되는 비공유 메모리 영역 입니다. 이 영역은 SQL문 처리, 세션 정보 저장, 정렬 작업 등 다양한 메모리 집약적 작업을 수행하는데 사용됩니다. PGA의 효율적인 관리는 데이터 베이스 성능에 직접적인 영향을 미치므로 매우 중요 합니다.

PGA 튜닝의 중요성

PGA를 적절히 튜닝하지 않으면 다음과 같은 문제가 발생할 수 있습니다.

  1. 쿼리 실행 속도 저하
  2. CPU 사용률 증가
  3. 메모리 부족 현상

따라서 PGA 튜닝은 전반적인 데이터베이스 성능 향상을 위해 필수적 입니다.

자동 PGA 메모리 관리

오라클은 자동 PGA 메모리 관리 기능을 제공하여 PGA 튜닝을 간소화 합니다. 이 모드에서는 오라클이  PGA_AGGREGATE_TARGET 파라미터를 기반으로 PGA 메모리를 동적으로 할당합니다.

PGA_AGGREGATE_TARGET 값 설정

  1. 총 물리적 메모리의 80%를 오라클 인스턴스에 할당합니다.
  2. 이 중 50%를 PGA에 할당합니다.

예를 들어, 시스템에 4GB의 물리적 메모리가 있다면: PGA_AGGREGATE_TARGET = (4GB * 0.8) * 0.5 = 1.6GB

PGA 튜닝 전략

1. 초기 PGA_AGGREGATE_TARGET 값 설정

  • OLTP 시스템 : 가용 메모리의 20%
  • DSS 시스템 : 가용 메모리의 50%

2.워크로드 모니터링

대표적인 워크로드를 실행하고 성능을 모니터링 합니다. V$PGASTAT 뷰를 사용하여 PGA 사용량 통계를 확인할 수 있습니다.

3.PGA 조언 통계 활용

V$PGA_TARGET_ADVICE와 V$PGA_TARGET_ADVICE_HISTOGRAM 뷰를 사용하여 PGA_AGGREGATE_TARGET 값 변경이 성능에 미치는 영향을 예측할 수 있습니다.

4.동적 PGA 관리 활용

오라클은 워크로드에 따라 PGA 메모리를 동적으로 조정합니다. 예를 들어 PGA_AGGREGATE_TARGET이 10GB이고 조정가능한 PGA가 5GB일 때

  • 한세션이 5GB 작업 영역이 필요한 정렬을 수행하면 5GB를 할당받습니다.
  • 두 세션이 동일한 정렬을 수행하면 각각 2.5G씩 할당 받습니다.

5.DBMAS_PGA_TUNING 패키지 사용

오라클은 DBMS_PGA_TUNING 패키지를 제공하여 PGA를 자동으로 튜닝할 수 있습니다. 이 패키지는 세션별 PGA 사용량을 분석하고 최적화 제안을 제공합니다.

PGA 모니터링 방법

  1. V$PGASTAT 뷰 사용 : PGA 메모리 사용량에 대한 인스턴스 레벨 통계를 제공 합니다.
  2. V$PROCESS 뷰 사용 : 각 프로세스의 PGA 메모리 사용량을 확인할 수 있습니다.
  3. V$SQL 뷰 사용 : SQL 문별 PGA 메모리 사용량을 분석할 수 있습니다.

PGA 튜닝 시 주의사항

  1. 과도한 메모리 할당 주의 : PGA에 너무 많은 메모리를 할당하면 시스템 리소스가 낭비될 수 있습니다.
  2. 워크로드 패턴 분석 : 애플리케이션의 특성에 맞게 PGA를 튜닝해야 합니다. OPTP와 DSS시스템은 서로 다른 PGA 설정이 필요할 수 있습니다.
  3. 정기적인 모니터링 : 데이터베이스 워크로드는 시간에 따라 변할 수 있으므로 정기적으로 PGA 사용량을 모니터링하고 필요에 따라 조정해야 합니다.
  4. SGA와의 균형 : PGA와 SGA 간의 적절한 균형을 유지해야 합니다. 한쪽이 너무 많은 메모리를 할당하면 다른쪽의 성능이 저하 될 수 있습니다.

결론

PGA 튜닝은 오라클 데이터베이스 성능 최적화의 핵심 요소 입니다. 자동 PGA 메모리 관리를 활용하고, 워크로드를 지속적으로 모니터링하며, 오라클에서 제공하는 다양한 도구와 뷰르르 사용하여 PGA를 효과적으로 관리할 수 있습니다. 적적할 PGA 튜닝을 통해 쿼리 성능을 향상시키고, 리소스 사용을 최적화 하며, 전반적인 데이터베이스 효율성을 높일 수 있습니다.

 

반응형