본문 바로가기
MS-SQL

Sorting

by kcj3054 2022. 4. 6.

Sorting

  • db에서 정렬을 줄이는 것이 중요하다
    • 왜 ? -> db는 데이터가 어마어마하게 많이 들어있기때문에 정렬이 한번 일어날때마다 매우 성능이 떨어진다. sorting이 언제 일어나는지 파악하고 줄일 수 있으면 노력하자!
  • 정렬이 일어나는 경우는 MERGE SORT, ORDER BY, GROUP BY, DISTINCT, UNION, 이다 모두 확인해보자

group by

select college, COUNT(college)
from players
where college LIKE 'C%'
GROUP BY college

  • COLLEGE 칼럼을 보면 인덱스가 걸려있지않다.

union

select college
from players
where college LIKE 'B%'

UNION

select college
from players
where college LIKE 'C%'
  • 만약 UNION ALL을 한다면 어떻게 될까?

  • 쿼리를 봐도 중복이 안될 것같으면 UNION을 사용할 필요가 없다. UNION ALL을 한다면 SORTING이 없다..

결론

  • 인덱스를 잘 활용한다면 정렬을 안해도된다. 머지 소트도 CLUSTERED INDEX가 있는 경우 이미 정렬이 되어있기 때문에 정렬을 따로하지않는다 또한 ORDER BY도 인덱스가 걸려있다면 SORTING이 필요없고.. union도 중복제거가 필요해서 그런데 조건을 보고 딱 봐도 중복이 없을 것같으면 UNION ALL을 사용해서 SORTING이 없도록 하면된다.
  • 루키스님의 db 강의를 학습 후 작성하였습니다.

'MS-SQL' 카테고리의 다른 글

Merge 조인, hash 조인 방식  (0) 2022.04.06
NestedLoop(Join)  (0) 2022.04.06
인덱스 칼럼순서  (0) 2022.04.06
북마크 룩업  (0) 2022.04.05
indexScan vs IndexSeek  (0) 2022.04.05