카디널리티는 복합 인덱스에서 어떤 역할을합니까? 그렇다면, 무엇?복합 인덱스 및 카디널리티에 관한 전략
나는 두 개의 컬럼에 결합 된 쿼리를 실행하고 그것이 내가 SUP-최적의 인덱스로 생각 무엇을 사용, 그래서 이의 우리가 가지고 있다고 가정 해 봅시다 ... I 인덱스를 설계하는 방법을 나에게 다시 생각 만들고있다미국 내 도시을 모두 나열한 표. 우리가 이제까지 한 주의 도시 모두를 조회해야하는 경우, 그것은 아마 인덱스를 대상 것이라고 - 그래서 여기 내 첫 번째 본능 (>도시주)에 클러스터 된 인덱스를 만드는 것입니다. 또한 도시과 상태 (여기서 우리는 시, 상태은 고유 한 쌍임)을 지정하는 쿼리의 훌륭한 인덱스가 될 것입니다.
본질적으로 특별 도시의 목록을 제공 한 테이블에 가입하는 쿼리가 실행되었습니다. 이 부분은 도시 표의 하위 집합입니다. Special.City 및 Special.State에 대한 조인을 지정하고 있지만 클러스터 된 인덱스 대신 CITY 테이블의 기본 키 인덱스 (자동으로 SQL 서버에서 생성 됨)를 사용한다는 점이 놀랍습니다. 내가 만든. 어째서? 나는 또한 좋은 인덱스가 높은 카디널리티이 들었습니다
...
그래서 내가 클러스터 된 인덱스 (또는 다른, 별도의 인덱스)가 작성되어 있어야합니다 경우 궁금하네요 ( 시 -> 주) 도시은 카디널리티가 높고 차별화됩니다 ( ). 상태은 버킷의 첫 번째 시리즈에 있습니다.특정 하위를 대상으로하는 쿼리와 특정 부모에 대한 모든 자식을 가져 오는 쿼리에 혜택을주기 위해 도시와 국가와 같은 부모 - 자식 관계에서 항상 부모 -> 하위에 클러스터형 인덱스를 만드는 것이 좋습니다. 여기서 뭔가를 재고해야합니까? 약동학 인덱스보다 소폭 저렴했다 -
비공식 테스트 (>주도시)에 대한 인덱스가 있음을 보여준다.
이 재미있다 ... "이 달려있다"어, 열 카디널리티는 역할을하지만, 그것은 단지 하나 개의 요소이고! 그 사람은 색인 생성에만 전념하는 블로그가 있습니까? 그건 미친 짓이야. 많은 감사합니다! –
@ 마크 : 색인 만이 아닙니다. 그가 한 일을 읽으십시오 : http://blogs.msdn.com/craigfr/about.aspx – gbn
또한 귀하의 예에서, DadID에 주어진 관계에 암시적인 Son.GrandDadID가 아닙니까? –