해결된 질문
작성
·
270
0
사실 저는 인덱스를 잘 아는 편은 아닙니다.
인덱스의 개념만 알뿐 데이터베이스 설계를 하면서
인덱스도 생성하는 건 아직 못해본 학생입니다.
그런 전제를 깔고 질문을 드려서
질문 자체 수준이나 왜 물어보는지 이해가 안 되실 수도 있지만
혹시 답변을 받을 수 있을까해서 질문남깁니다.
select orderID from dbo.Orders
와
select orderID, OrderDate FROM dbo.Orders
에서 아래 테이블은 어떠한 이유로 불필요한 컬럼인지 잘 모르겠습니다.
orderID 컬럼에 대해서 인덱스가 이미 생성되어 있고
orderDate는 인덱스로 생성되어있지 않은 컬럼이라
orderid만 조회하면 인덱스를 조회하면 되는데
orderDate까지 조회하는 걸로 작성해서 괜히
인덱스는 쓰지도 못하고 테이블을 훑어서 조회하니까
문제라는 말씀이신가요?
답변 2
0
안녕하세요 헤이호, 반갑습니다.
전제는 쿼리에서 "필요하지 않은 칼럼"을 참조하면 이런 차이가 발생할 수 있습니다...라는 예제로 이해하시면 되겠습니다.
(비지니스상) 쿼리에서는 OrderID만 필요한데 불필요하게 다른 칼럼을 참조해서 인덱스로 커버하지 못하고 불필요하게 (랜덤) IO를 유발할 수도 있다는 상황입니다.
인덱스에 대한 내용은 적어주신 부분이 맞습니다.
열공하시는 모습에 응원 보냅니다.
김정선 드림
0