좋아요, 한 번 더 입력해야합니다. 나는 온라인으로 기사를 읽었으며 나는 아직도 명확한 대답을 찾지 못했다.SQL Server 2008 비 클러스터형 인덱스에는 클러스터형 인덱스 필드가 포함되어 있습니까?
SQL Server 2008에는 약 50KB의 레코드와 모든 쿼리에서 동일한 방식으로 사용되는 많은 읽기 작업이 포함 된 "핵심"테이블이 있습니다. 이 데이터는 한 달에 한 번 업데이트되며 1 초에 수백 번 읽습니다.
데이터에는 자주 액세스 할 때 필드에 클러스터형 인덱스가 있습니다. 그냥 포함 "에 열 여분의 몇 가지를 넣어 감각을 만들 것, 그래서 그것보다 훨씬 더 많은 데이터가없는
클러스터 된 인덱스 이제
Field1 int
Field2 int
Field3 int
Field4 int
Field5 int
:의는 클러스터 된 인덱스가 있다고 가정 해 봅시다 열 "이지만 SQL Server는 클러스터 된 인덱스에 포함 된 열을 허용하지 않습니다.
따라서 두 번째 인덱스는 클러스터 된 인덱스와 기본적으로 동일한 필드를 포함하고 있고 다른 열은 "포함 된 열"입니다. 그러나, 내가 읽은 것에서 이것은 중복 될 수 있다고 생각합니까?
커버 INDEX
Field1 int
Field2 int
Field3 int
Field4 int
Field5 int
포괄 열
Field6 varchar(96)
Field7 varchar(96)
클러스터되지 않은 인덱스가 이미 정의 된 클러스터 된 인덱스에서 열이 있습니까
을 (클러스터되지 않은)?그렇다면이 두 번째 인덱스는 (이미 클러스터형 인덱스에있는 것 이외에) 전혀 NO 열을 사용하지 않고 어떻게 만들 수 있습니까? 즉, "이 색인은 클러스터 된 색인과 정확히 동일합니다 ... 몇 개의 포함 된 열과 함께"라고 말하고 싶습니다.
또는 모든 열을 클러스터 된 인덱스 (레코드를 식별하지 않는 두 인덱스 포함)에 넣는 것이 좋습니다. varchar 열은 업데이트 빈도가 높아지고 (월 1 회가 아니라 하루에 몇 번) 클러스터 된 인덱스에서 제외 시키려면 좋겠지 만 충분히 깊으므로 영향을받지 않을 것입니다. 변경이 발생할 때 재조정을 일으킬 정도로 충분히 색인 된 트리.
그래서이 테이블의 모든 열이 테이블로 돌아 가지 않고 인덱스를 통해 사용할 수 있도록 이러한 인덱스를 설정하는 효율적인 방법이 있습니까?
여기에있는 모든 대답은 꽤 비슷하지만 질문을 필수 사항으로 간과하고 너무 많은 RDBMS 이론 없이는 필요한 "실행 가능한"정보를 제공했다고 생각합니다. 감사! – Flipster