728x90

Group By와 Distinct 모두 Select 구문과 함께 사용되면서, 중복행을 제거하기 위해서 많이들 사용합니다.

물론 Group By의 경우에는 단순히 중복행을 제거하는 기능만 있는것은 아니지만 말입니다.

Oracle 9i까지는 Distinct와 Group By 모두 Plan 상에서 Sort를 발생시킵니다.

하지만, Oracle 10g이상부터는 Group By의 경우 Sort가 Plan 상에서 없어지게 되지요.

불필요한 Sort로 성능을 저해하는 요인(?)을 제거해보겠다.... 뭐 그런 맥락인것이지요.

그럼 여기서 생기는 궁금증 하나??


▷ 단순히 중복행을 제거하기 위해서 Group By와 Distinct를 사용한다고 했을 경우 두개의 차이점은??

적은 Data의 양을 가지고 중복행을 제거하고자 할 때는 Distinct가 빠르고,

많은 Data의 양을 가지고 중복행을 제거하고자 할 때는 Group by가 빠르다고들 한다.

왜일까??

나는 오라클 9i 쓰는데 GROUP BY 는 23초 걸리고 DISTINCT는 19초 걸린다.

SORT가 발생되서 그런가 보다.

 

728x90

'DB' 카테고리의 다른 글

MYSQL EUCKR LATIN1 한글 문제  (0) 2012.07.29
오라클 숫자 문자 구별 쿼리  (0) 2012.07.29
오라클 계정 LOCK  (0) 2012.07.29
ORACLE 9i snapshot 스냅샷  (0) 2012.07.29
오라클 스크립트파일 실행하기  (0) 2012.07.29

+ Recent posts