데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요..이제막 디비를 배워가고있는 쌩 초보입니다ㅜㅜ
여기선 초보적인 질문일거라 생각하는데 어떻게 검색해도 찾기가 힘들어 질문좀 드립니다.
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나 실행시간등을 비교해 보시면 될 거 같습니다.