안녕하세요..이제막 디비를 배워가고있는 쌩 초보입니다ㅜㅜ
여기선 초보적인 질문일거라 생각하는데 어떻게 검색해도 찾기가 힘들어 질문좀 드립니다.
tbl_a에
id컬럼(int,pk) a컬럼(varchar(512)) 이있을때
id가 pk라서 클러스터 인덱스가 걸려있습니다.
그때 a컬럼에 비클러스터 인덱스를 추가로걸고
select * from tbl_a where a컬럼='a'
와같이 실행계획을 날리면 clustered index scan 으로 뜹니다. ㅜㅜ
a컬럼을 비클러스터 인덱스로 걸었는데 클러스터인덱스 scan으로뜨는이유가 뭔지 궁금합니다..
scan이 안뜨게하는게 목표인데..어째야할지..ㅠㅠ
옵티마이저가 판단을 했을때 clustered index scan이 더 효율적이라고 판단을 했나 봅니다.
새로 추가한 인덱스로 실행되게 하고 싶으시면 HINT를 사용해서 실행하시면 됩니다.
2가지 다 해보시고 IO나 실행시간등을 비교해 보시면 될 거 같습니다.