반응형

 

 SQL Server에서는 Sort Area를 수동으로 조정하는 방법이 없다. Oracle은 있다.

 

 오라클 9i부터 '자동 PGA 메모리 관리(Automatic PGA Memonry Management)' 기능이 도입되었다. pga_aggregate_target 파라미터를 통해 인스턴스의 전체적으로 이용 가능한 PGA 메모리 총량을 지정하면, Oracle이 시스템 부하 정도에 따라 자동으로 각 세션에 메모리를 할당해 준다.

 

 자동 PGA 메모리 관리 기능을 활성화하려면 workarea_size_policy를 auto로 설정하면 되는데, 9i부터 기본적으로 auto로 설정돼 있으며 sort_area_size 파라미터는 무시된다.

 

 기본적으로 자동 PGA 메모리 관리 방식이 활성화되지만 시스템 또는 세션 레벨에서 '수동 PGA 메모리 관리' 방식으로 전환할 수 있다.

 

 특히, 트랜잭션이 거의 없는 야간에 대량의 배치 Job을 수행할 때는 수동으로 변경하고 직접 크기를 조정하는 것이 효과적일 수 있다. 즉, Sort Area를 사용 중인 다른 프로세스가 없더라도 특정 프로세스가 모든 공간을 다 쓸 수 없는 것이다. 결국 수 GB의 여유 메모리를 두고도 이를 충분히 활용하지 못해 작업 시간이 오래 걸릴 수 있다.

 

 그럴 때 아래와 같이 workarea_size_policy 파라미터를 세션 레별에서 manual로 변경하고, 필요한 만큼(최대 2,147,483,647 바이트) Sort Area 크기를 늘림으로써 성능을 향상시키고, 궁극적으로 전체 작업 시간을 크게 단축시킬 수 있다.

 

 SQL> ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;

 SQL> ALTER SESSION SET SORT_AREA_SIZE = 10485760;

반응형