안녕하세요. 간단히 실행계획에 대해 sample을 만들던 중 궁금한것이 생겨서 질문 올립니다.
테이블 A의 컬럼 a는 int 형입니다.
데이터를 10만건 넣어놓고, index를 생성하였습니다.
select * from A where a=1
이렇게 하면 당연히 index를 탑니다.
set statistics profile on 을 하면
index seek 항목에 A.a=(1) 이렇게 조건이 붙습니다.
그런데, test를 위해
select * from A where a='1'
Comment 9
-
minsouk
2013.11.13 23:10
형 우선순위에따라 적절한 묵시적 컨버팅이 적용 되었잖아요 -
땜빵_꼴통
2013.11.14 09:28
mssql에서는 데이터 타입간의 우선순위가 존재합니다
"데이터 형식 선행 규칙"으로 msdn에서 반드시 찾아보시기 바랍니다
이 규칙에 의해서 하위형식을 상위형식으로 형 변환을 하게 됩니다
-
Jaden
2013.11.14 12:20
제가 질문 드린건... 묵시적으로 형 변환이 이루어지게 되는 문제가 아니라
형 변환에 대해서....변수로 했을 때는 실행계획에 CONVERT_IMPLICIT가 보여지는데
그냥 하드코딩으로 '1' 이렇게 조건을 넣었을 때는 CONVERT_IMPLICIT가 보이지 않아서
왜 그런것인지에 대한거였습니다;
조건을 '1'로 넣어도 CONVERT_IMPLICIT가 나와야 될것 같은데 말이죠...
-
건우아빠
2013.11.14 15:55
-
minsouk
2013.11.20 16:45
.
-
건우아빠
2013.11.20 17:50
소고기는 내가 사줄수도 있음.
당산역으로 오삼.
-
minsouk
2013.11.20 18:17
.
-
건우아빠
2013.11.20 19:13
자기는 감당하지만 나머지분은 아마 힘들듯.
오면 와인은 지원 하겠음.
-
Jaden
2013.11.20 20:39
몇일 못들어오다가 보니 답변들이...@_@
감사합니다....
제가 처음에 질문을 조금 잘못한것 같기도 하고...^^;
우연찮게 버그를 찾은건가요;;; 원래 있던건가...^^;
아무튼 답변 감사합니다. 많은 도움이 되었습니다....