안녕하세요?
여기서 매번 많은 도움 받고있습니다. 감사합니다.
어설프게 개념만 알아서 힘드네요..ㅠㅠ
복합인덱스 사용중인데
컬럼 A, B 이렇게 복합 인덱스 사용중 입니다. (정확히 말하면 B 컬럼은 INCLUDE 하고 있습니다.)
SELECT B
FROM table
WHERE A = 100
위처럼 자주쓰는 쿼리가 있고
SELECT A
FROM table
WHERE B = 200
이또한 자주 쓰는 쿼리가 있습니다.
이때 복합인덱스를 한개 더 만드는건지 궁금합니다.
B 컬럼 인덱스 INCLUDE(A)
요약하자면
A 컬럼 인덱스, INCLUDE(B)
B 컬럼 인덱스, INCLUDE(A)
하나의 테이블에 이런 인덱스 두개 만들어서 사용하는게 맞는지요?
왠지 낭비인거 같이도 하고.. 좋은 방법이 있을것 같은데 검색해도 잘 안나와서요
* 참고로 테이블에는 클러스터인덱스는 없습니다.
Comment 2
-
항해자™
2016.03.22 08:50
-
자리비움
2016.03.23 15:41
WHERE A = 100 , WHERE B = 2001.위 2개 조건은 복합 인덱스 여부와 별개로 인덱스를 잘 사용할 수 있는(성능 상 이점이 있다면) 상태라면 인덱스가 둘 다 있어야 합니다.2.단순히 A컬럼 조건으로 B컬럼만 조회하거나, B컬럼 조건으로 A컬럼만 조회한다면 둘 다 include index 로 설정하는게 좋습니다.추가로,1. include 인덱스로 설정이 되어있고, 넌클러스터드 인덱스 레벨에서 모든 데이터가 조회된다면 굳이 clustered index 일 필요는 없습니다.2. clustered index 의 장점을 찾아보시기를 권해드립니다.
덧붙이자면 특별한 경우가 아니라면 클러스터 인덱스가 있는 편이 여러모로 좋습니다^^;;