출처 :   http://ukja.tistory.com/356


오라클이 버전업되면서 가장 신경쓰는 것 중 하나가 관리의 자동화입니다.

그 중 대표적인 것이 메모리 자동 관리입니다. Oracle 10g에서는 SGA 및 하부 컴포넌트(공유 풀과 버퍼 캐시 등)의 크기를 자동으로 조정하는 SGA 크기 관리 기능이 추가되었고, 11g에서는 PAT(PGA Aggregate Target)의 크기까지 관리해주는 기능이 추가되었죠.

제가 가지는 한가지 의문 중 하나는, 메모리 자동 관리 기능을 써야 하나?입니다.


결론은 애석하게도 부정적입니다.

  • 공유 풀과 버퍼 캐시의 크기가 변경되는 과정에서 불필요한 경합(래치 경합과 뮤텍스 경합)이 발생할 확률이 높습니다.
  • 특정 컴포넌트(가령 공유 풀)의 크기가 불필요하게 커지는 현상이 생길 수 있습니다.
  • 11g의 자동 메모리 관리 기능을 사용하면 PAT(PGA Aggregate Target)의 값이 바뀔 수 있고, 이로 인해 실행 계획이 변경되는 쿼리들이 생길 수 있습니다.



엔터프라이즈 급의 데이터베이스라면 매뉴얼한 최적화 과정이 반드시 필요합니다. 여기에는 메모리 크기 설정도 포함됩니다. 따라서 오라클 엔진에게 자동 메모리 관리 기능을 맡김으로써 불필요한 위험을 초래할 필요는 없다고 봅니다.

일정한 스킬을 보유한 DBA 그룹이 없는 중소 규모의 데이터베이스라면 자동 메모리 관리 기능이 유용할 수도 있을 것입니다.
단, 이런 경우라도 위에서 언급한 문제들이 언제든지 발생할 수 있기 때문에 여전히 보수적인 자세를 취할 필요가 있겠지요.







+ Recent posts