sql 튜닝 Top N 쿼리 질문 (sort연산 왜 생략가능한지)
-
게시물 수정 , 삭제는 로그인 필요
아래와 같은 쿼리문이 있을때 제 얕은 지식으로는 sort 생략이 왜 안되는지 잘 모르겠습니다
인덱스에 다 포함된 컬럼들이라 소트 생략이 될것같은데 왜 안되는지 여쭤볼게요 ㅜ
굵은표시는 제가 생각하는 생략가능한 이유가 될것같은 인덱스 포함 컬럼들입니다
- 인덱스목록
거래_PK : tradeDay + acc_no + tradeorder
거래_X01 : acc_no + tradeorder + payID
- 쿼리
select *
from (
select acc_no, tradeorder, price, amount, payID, platformID
from trade
where tradeDay =:ord_dt
order by acc_no, tradeorder, payID
)
where rownum<=50
다 적고나니 드는 생각이
order by 절의 payID가 다른 오더바이절의 컬럼들과 같은 인덱스가 아니라서 그런거같은데 맞나요?
제 얕은 지식으로는 sort 생략이 왜 안되는지 잘 모르겠습니다
인덱스에 다 포함된 컬럼들이라 소트 생략이 될것같은데 왜 안되는지 여쭤볼게요 ㅜ
굵은표시는 제가 생각하는 생략가능한 이유가 될것같은 인덱스 포함 컬럼들입니다
- 인덱스목록
거래_PK : tradeDay + acc_no + tradeorder
거래_X01 : acc_no + tradeorder + payID
- 쿼리
select *
from (
select acc_no, tradeorder, price, amount, payID, platformIDfrom tradewhere tradeDay =:ord_dtorder by acc_no, tradeorder, payID
)
where rownum<=50
다 적고나니 드는 생각이
order by 절의 payID가 다른 오더바이절의 컬럼들과 같은 인덱스가 아니라서 그런거같은데 맞나요?
#sql 튜닝 #sql 튜닝 강의 #sql 튜닝 책 #sql 튜닝 가이드 #sql 튜닝이란 #sql 튜닝 책 추천 #sql 튜닝의 시작 #sql 튜닝 예제 #sql 튜닝 기초 #sql 튜닝 권고자