SORT AREA SIZE

EXEM Knowledge Base

Jump to: navigation, 찾기

SORT_AREA_SIZE에 대해서는 흔히 잘못된 이해를 하게된다. 대부분의 사용자들은 이 값이 모든 사용자들이 sort 작업에 사용하게 되는 공용 메모리 영역의 크기로 이해를 하는데, 실제로는 사용자 프로세스 별로 사용하게 되는 sort 영역의 크기를 나타낸다. 앞에서 살펴본 두개의 파라미터와 달리, SORT_AREA_SIZE는 SGA영역에 속하지 않는다. 만약 sort_area_size 값이 너무 작다면, sort 작업 대부분이 사용자의 temporary tablespace에서 디스크를 사용하여 이루어 지게 된다. SQL 처리시 order by 나, group by 등을 사용할 경우에는 sort 작업이 발생하나. index 생성등에도 sort가 발생한다. - index 생성시, order by나 group by, select 문장에서 distinct function - union, intersect, minus operation, sort-merge joins, analyze command

메모리 sort는 디스크 sort에 비해 훨씬 좋은 성능을 보이므로, 지속적으로 SORT_AREA_SIZE 값을 모니터하여 튜닝을 하는것이 바람직하다. 하지만, 이 값을 너무 크게 지정할 경우, swapping이 발생하면서 시스템 성능이 급격하게 저하될 수 있다.

  • SORT_AREA_SIZE는 세션별로도 지정가능하며, 지정하기 위해서는 ALTER SESSION 권한이 있어야 한다. 특정 세션에서 시스템상의 모든 메모리를 사용하도록 할 경우 시스템 성능이 급격히 저하 될 수도 있다.