DBDBDEEP

oracle pga 설정으로 인해 얻을수 있는 효과


오라클에서 PGA는 아래와 같은 방식으로 계산하여 size를 결정하도록 권고하고 있습니다.


#For OLTP systems 

   PGA_AGGREGATE_TARGET  = (physical memory * 80%) * 20%



#For DSS systems 

   PGA_AGGREGATE_TARGET  = (physical memory * 80%) * 50%



PGA를 늘리는 이유는 무엇이며 얻을수 있는 효과를 정리해보았습니다.


오라클 9i 및 10g 이상의 버전에서는

세션 별로 정해진 PGA 크기가 아닌 PGA_AGGREGATE_TARGET Parameter에 정해진 크기 범위에서 세션 별 자동으로 

할당하여 메모리를 사용할 수 있게 됩니다.


pga 확인pga확인하는 법



데이터베이스의 하나의 접속 세션이 100MB를 정렬작업을할땐SORT_AREA_SIZE가 100MB보다 커야 합니다.

SORT_AREA_SIZE 10MB라면 총 10번의 I/O를 발생하면서 성능에 문제를 야기할수 있으므로 WORKAREA_SIZE_POLICY Parameter를 AUTO로 설정후 

PGA_AGGREGATE_TARGET Parameter에 100MB 이상으로 

지정시I/O를 발생하지 않고 메모리에서 정렬 작업을 수행하게 됩니다. 



 PGA_AGGREGATE_TARGET  = (physical memory * 80%) * 20%

이 계산식을 통해 이전보다 높게 설정한결과


직접 테스트한 결과로는 pga를 늘리면 temp tablespace 영역을 좀더 

효율적으로 사용하게되며 쿼리속도는 약0~30%가량 개선되었습니다.

(물론 전체적인 메모리사용량은 이전보다 늘었지만 

현 시스템에서 우려할만한 수준의 사용량은 아니었습니다.)


그동안 DB구성시 SGA영역은 신경썻지만 

PGA영역은 좀 소홀했었는데 이번테스트를통해 보다 

적화된 DB를 구성할수 있게 참고할수 있을것 같습니다.. 






이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band