메모리 소트(In-Memory Sort): 전체 데이터의 정렬 작업을 메모리 내에서 완료하는 것을 말하며, ‘Internal Sort’라고도 한다.
디스크 소트(To-Disk Sort): 할당받은 Sort Area 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우를 말하며, ‘External Sort’라고도 한다.
디스크 소트 과정
temp 영역에 저장해 둔 중간 단계의 집합을 ‘Sort Run’이라고 부름
최종 결과집합을 얻으려면 이를 다시 Merge 해야 하는데, 이를 ‘Run Merge’라고 부름
5.1.2 소트 오퍼레이션
(1) Sort Aggregate
전체 로우를 대상으로 집계를 수행할 때 나타난다. ‘Sort’라는 표현을 사용하지만, 실제로 데이터를 정렬하진 않는다.
데이터를 정렬하지 않고, 집계 연산을 진행하는 절차는 아래와 같다.
Sort Area에 SUM,MAX,MIN,COUNT 값을 위한 변수를 각각 하나씩 할당한다.
p333 그림5-2처럼 EMP 테이블 첫 번째 레코드에서 읽은 SAL 값을 SUM,MAX,MIN 변수에 저장하고, COUNT 변수에는 1을 저장한다.
EMP 테이블에서 레코드를 하나씩 읽어 내려가면서 SUM 변수에는 값을 누적하고, MAX 변수에는 기존보다 큰 값이 나타날 때마다 값을 대체하고, MIN 변수에는 기존보다 작은 값이 나타날 때마다 값으르 대체한다. COUNT 변수에는 SAL 값이 NULL 이 아닌 레코드를 만날 때마다 1씩 증가시킨다.
EMP 레코드를 다 읽고 나면 그림 5-3(p334)처럼 SUM, MAX, MIN, COUNT 변수에 각각 14000, 5000, 1000, 5가 저장돼 있다. SUM, MAX, MIN 값은 변수에 담긴 값을 그대로 출력하고, AVG는 SUM 값을 COUNT값으로 나눈 2800을 출력하면 된다.