[DB] 소트 수행 원리

최민석·2021년 8월 1일
1
post-thumbnail

정렬은 자칫 잘못하면 큰 부하를 가져온다.

SQL수행도중 정렬이 필요할 때면 PGA메모리에 Sort Area를 할당하는데, 그안에서 처리를 완료할 수 있는지 여부에 따라 두가지 유형으로 나뉜다.

  • 메모리 소트 : 전체 데이터의 정렬 작업을 메모리 내에서 완료하는것을말함.
  • 디스크 소트 : 할당받은 Sort Area에서 정렬을 완수하지 못할때, 디스크 공간까지 사용하는 경우를 말함.

소트를 발생시키는 오퍼레이션

Sort Aggregate

Sort Aggregate는 위처럼 전체로우를 집계할때 나타내는데, sort라는 표현을 사용하긴 하지만, 실제 소트가 발생하지는 않는다.

Sort Order By

order by 오퍼레이션 사용시 나타난다.

Sort Group By

sort group by는 소팅 알고리즘을 사용해 그룹별 집계를 수행할 때 나타난다.

Sort Unique

위와같이 union, minus, intersect 등과 같은 집합 연산자를 사용할 때 sort Unique가 발생함

그 외 Unnesting된 서브쿼리가 M쪽 집합이거나, Unique 인덱스가 없을떄, 세미조인으로 수행도지도 않을때 메인쿼리와 조인하기 전에 sort unique를 먼저 수행한다.
distinct 수행시 10g 이전에도 sort unique가 발생했지만 이후에는 hash unique가 발생한다.

Sort Join

소트 머지조인으로 조인시 발생하는 소트 오퍼레이션

Window Sort

window 분석함수를 수행할 때 나타난다.

profile
🔥🔥🔥🔥 G U N F E 🔥🔥🔥🔥

0개의 댓글