4 ~ 10 행의 테이블이 몇 개 있습니다. 우리는이 테이블이 몇 줄 더 늘어날 것으로 예상하지 않습니다.작은 테이블에 인덱스를 넣는 것이 합리적입니까?
기본 키에 색인을 붙이는 것이 합리적입니까?
4 ~ 10 행의 테이블이 몇 개 있습니다. 우리는이 테이블이 몇 줄 더 늘어날 것으로 예상하지 않습니다.작은 테이블에 인덱스를 넣는 것이 합리적입니까?
기본 키에 색인을 붙이는 것이 합리적입니까?
명시된대로 기본 키가있는 경우 이미 하나 이상의 색인이 있습니다. 이것은 아마도 클러스터 된 인덱스이고, 나는 당신이 가기가 좋다.
거의 항상 클러스터 된 인덱스가 있어야합니다. 나는 그렇다고 말하고, 계속 나아가고 색인을 작성합니다.
테이블의 데이터가 예상보다 커지면 큰 테이블 크기의 영향을 완화하는 데 도움이되는 간단한 인덱싱 전략이 있어야합니다.
기본 키을 사용하는 경우 클러스터 된 인덱스가 이미 하나 있습니다.
기본 키가 클러스터되지 않아도됩니다. –
클러스터 된 인덱스 인 기본 키가 있으면 좋겠다. 그러나 색인의 열 (들) 이외에 4 - 10 행 표는 작습니다. 실제 표 스캔보다 색인을 찾는 데 더 많은 비용이 부과됩니다.
누군가 나를 제발 정직하게 여기십시오. 대규모 생산 및보고 환경의 SQL 2008의 경우, 50K 행 미만의 테이블에서 인덱스를 사용하지 않아도됩니다.
정답은 입니다. 문제가되지 않습니다..
테이블이 단일 8k 데이터 페이지 안에 들어가기에 충분히 작 으면 언제든지 SQL Server는 해당 페이지를로드하고 필요한 모든 작업을 수행 할 수있는 "전체 테이블"을 가질 수 있습니다.
클러스터 인덱스 는 테이블 자체, 그래서 당신은 클러스터 된 인덱스를 추가하면, 당신이 정말로 어떤 오버 헤드를 추가하지 않는, 당신은 단지 하나의 데이터 페이지 내에서 정렬 기본 설정을 지정하고 테이블이 상주입니다 .
비 클러스터형 인덱스는 별도의 개체이므로 절대 사용되지 않으므로 낭비됩니다. (쿼리 최적화 프로그램은 단일 데이터 페이지에 대한 포인터 만있는 인덱스를로드하지 않으며 데이터 페이지를 직접로드합니다.)
꼭 기본 키가 있는지 확인하십시오.하지만 클러스터 된 인덱스를 추가하는 경우 테이블이 한 페이지를 훨씬 넘어서지 않는 한 많은 의미가 없습니다. .
훌륭한 정보 BradC. +1 :) – wcm
나는 이것에 Tapori와이다; 색인을 추가하면 불필요하게 오버 헤드가 추가됩니다.
이와 같은 테이블의 클러스터형 인덱스에 어떤 fill factor를 사용할 수 있습니까? –
채우기 비율은 실제로 삽입 및 업데이트의 특성에 따라 다릅니다. 예를 들어, 클러스터 된 인덱스에 의해 정의 된 순서대로 레코드를 삽입하는 경향이 있고 업데이트를 거의 수행하지 않으면 높은 채우기 비율이 가장 좋습니다 (업데이트가없는 경우에도 100 %까지). 그런 식으로 주어진 페치에 대해 가능한 한 몇 개의 데이터 페이지를 스캔합니다. 순서가 맞지 않는 삽입 또는 산발적 인 업데이트보다 많은 테이블의 경우 채우기 비율이 낮아야합니다. –
인덱스를 자주 변경하려는 값은 어떻게됩니까? 클러스터링으로 인해 성능이 저하되지 않습니까? – johnnycrash