• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

불필요한 컬럼 참조에서 궁금한 게 있습니다.

22.02.14 16:10 작성 조회수 209

0

사실 저는 인덱스를 잘 아는 편은 아닙니다.

인덱스의 개념만 알뿐 데이터베이스 설계를 하면서

인덱스도 생성하는 건 아직 못해본 학생입니다.

그런 전제를 깔고 질문을 드려서 

질문 자체 수준이나 왜 물어보는지 이해가 안 되실 수도 있지만

혹시 답변을 받을 수 있을까해서 질문남깁니다.

 

select orderID from dbo.Orders

select orderID, OrderDate FROM dbo.Orders

에서 아래 테이블은 어떠한 이유로 불필요한 컬럼인지 잘 모르겠습니다.

orderID 컬럼에 대해서 인덱스가 이미 생성되어 있고

orderDate는 인덱스로 생성되어있지 않은 컬럼이라 

orderid만 조회하면 인덱스를 조회하면 되는데

orderDate까지 조회하는 걸로 작성해서 괜히

인덱스는 쓰지도 못하고 테이블을 훑어서 조회하니까 

문제라는 말씀이신가요?

 

 

답변 2

·

답변을 작성해보세요.

0

안녕하세요 헤이호, 반갑습니다. 

전제는 쿼리에서 "필요하지 않은 칼럼"을 참조하면 이런 차이가 발생할 수 있습니다...라는 예제로 이해하시면 되겠습니다. 

(비지니스상) 쿼리에서는 OrderID만 필요한데  불필요하게 다른 칼럼을 참조해서 인덱스로 커버하지 못하고 불필요하게 (랜덤) IO를 유발할 수도 있다는 상황입니다.

인덱스에 대한 내용은 적어주신 부분이 맞습니다.

 

열공하시는 모습에 응원 보냅니다.

김정선 드림

0

헤이호님의 프로필

헤이호

질문자

2022.02.14

만약 맞다면, 인덱스는 테이블에서 orderid만 컬럼으로 추출해서 만든 또다른 테이블일까요?