Group by 와 Order by 절이 모두 있는 쿼리에서
Group By절을 빼고 Order by절만 남겨 놓은 쿼리의 실행계획 입니다. 데이터의 자료가 적어 속도는 비슷하나
실행계획이 달라 졌는데 차이가 있을가요? 작은 조언이라도 감사히 듣겠습니다.
감사합니다.
Comment 1
-
맨즈밤
2013.07.22 15:45
Group by 와 Order by 절이 모두 있는 쿼리에서
Group By절을 빼고 Order by절만 남겨 놓은 쿼리의 실행계획 입니다. 데이터의 자료가 적어 속도는 비슷하나
실행계획이 달라 졌는데 차이가 있을가요? 작은 조언이라도 감사히 듣겠습니다.
감사합니다.
2013.07.22 15:45
추측성으로 답변 달아보겠습니다. 오류가 있을수 있으니 그점 양해해주시구요....
SQL2005인가요? 실행계획이 옛날버전 같아서요. 2008만 되어도 집계성 쿼리는 거의 해시집계나 스트림집계로 나타나거든요.
뭐 여튼...
집계는 일반적으로는 데이터를 정렬후에 정렬된 데이터를 읽어나가면서 그룹작업과 집계작업을 하게 됩니다. 쿼리1 에서
SORT(DISTINCT SORT) 와 그 후에 처리되는 COMPUTE SCALAR 함수가 그런 역활이죠.
쿼리2에서는 그럴필요가 없으니 관련 연산자가 빠졌구요. 소트전에 나타나는 COMPUTE SCALAR 는 행단위 연산을 수행한것으로 보입니다.