2017-02-15 4 views
1

인덱스 열 순서에 대한 기사가 많이 있으며 아이디어가 있습니다. 그러나 고유 인덱스에 대해서는 아무 것도 발견하지 못했습니다.고유 인덱스 열 순서 - 중요합니까?

간단한 예 : 신원 Id, ProductIdCategoryId 3 열로 ProductCategoryMapping 테이블을 이용하여 N-N의 관계를 갖는 ProductCategory 테이블.

내가 2 열이 고유 인덱스 UN_ProductCategoryMapping_Product을 작성하는 경우 : ProductIdCategoryId, 나는 또한 반대 순서로 다른 고유 인덱스를 만들 가정해야 가끔 싶다 "카테고리의 목록 모든 제품", 때로는 "목록 모든 범주에 제품이 "에 속해 있습니까?

SQL Server는이 경우 최적화 할만큼 똑똑합니까?

+3

'성, 이름'순서로 모든 사람을 나열하는 전화 번호부가 있다면 각 성의 이름이 얼마나 공통인지 알고 싶다면 얼마나 유용할까요? –

+0

각 열 순서에 대한 고유 색인은 각 검색 사례를 지원하는 데 도움이됩니다. – SqlZim

답변

2

고유성은 열 순서에 의존하지 않습니다. 열 1, 2 및 3의 조합이 고유하고 다른 열 2, 1 및 3의 조합이 고유하다고 명시하면 동일한 사실을 알 수 있습니다.

그러나 모든 색인이 동일하거나 똑같이 유용하다고 말할 수는 없습니다. 인덱스는 가장 왼쪽에있는 모든 열을 사용할 수있는 경우에만 유용합니다. 모든 인덱스의 맨 왼쪽 컬럼을 사용하지 않는 u 리가있는 경우 u 리를 충족시키는 유일한 f}은 전체 테이블을 스 5하는 것입니다.

+0

SQL Server는 테이블 대신 인덱스를 검사 할 수 있으므로 두 번째 인덱스 열을 쿼리하는 경우에도 인덱스를 사용할 수 있습니다. 이는 테이블 (또는 클러스터 된 인덱스)에 비해 인덱스가 작고 필요한 조회 량이 거의 또는 전혀 없을 때 종종 발생합니다. –