count() 함수도 정렬을 하나요? 0 1 8,319

by jkonury32 [SQL Query] oracle count [2014.04.09 23:39:34]


너무나도 궁금하여 문의합니다. 
DB는 오라클 10g 입니다.


하루 10~15만건 데이터가 쌓입니다. 
누적된 데이터는 약 2억 8만건입니다. 

기존에는 쿼리는 실행하면 평균 15~20분이면 결과가 나왔는데 (4개월 가량  문제 없었음)
그런데 얼마전 부터 결과를 돌리면 결과가 안 나왔습니다. 

쿼리는 이런 형태 입니다. 

select count(*)
from col1 not in (...) -- col1 결합인덱스로 유니크 인덱스
and col5 in (...) -- 인덱스 컬럼에 없음

플랜은 index full scan 입니다.

DBA에게 이상하다고 문의를 했습니다. 
그런데 DBA가 하는 말이

dba : count 함수는 정렬이 필요하지 않은 함수죠? 
me : 네;

dba: 쿼리는 종료가 되었는데 정렬을 해서 결과 값이 출력이 되지 않는 것입니다. 
me: 네??? (대체 그게 뭔말이요?  count 함수를 돌리는데 정렬을 해요?)

차마 dba에게 직접 묻지는 못했지만 저게 맞는 말인가요?
너무나 궁금하여 질문합니다. 

count 함수를 호출하는데 정렬을 하나요?(아니 정렬을 해서 쿼리가 값이 안나온게 이해가 안되서요;;;;)


답변 주시면 감사하겠습니다.
by 부쉬맨 [2014.04.10 10:56:45]
정렬이 필요가없죠
단순 갯수만 새는거니깐
그래서 index_ffs스캔으로 카운터를 가져오고 하죠
정렬안하고 멀티로 읽어버리니깐
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입