2016-10-31 3 views
1

작은 테이블에 인덱스를 만드는 것이 이점보다 비용이 많이들 것이라는 점을 이해합니다.인덱스를 생성하기위한 테이블의 최적 행 수

예를 들어 100 개 이하의 행과 테이블에 인덱스를 작성 요점 (또는 1000 개의 행?)

인덱스를 생성하기위한 임계 값으로 행 특정 숫자가 있는가입니까?

업데이트 1

는 더 내가 조사하고, 더 나는 충돌 정보를 얻을 수 있습니다. IO 쓰기 작업을 유지하는 것에 대해 너무 우려 할 수도 있습니다. 내 SQL 서버 데이터베이스가 HA 동기 - 커밋 모드에 있기 때문에.

포인트 # 1 : 매우

이 질문에 대한 우려 입출력 쓰기 성능을 제공합니다. SQL Server HA Synchronous-commit 모드와 같은 시나리오에서는 데이터베이스 서버가 교차 서브넷 데이터 센터에있을 때 IO 쓰기 비용이 높습니다. 색인을 추가하면 값 비싼 IO 쓰기 비용이 추가됩니다.

포인트 # 2 :

Books Online는 제안 : 그것은 간단한을 수행 인덱스가 보다는 데이터를 검색 할 통과 할 최적화 더 이상 질의를 취할 수 있기 때문에

인덱싱 작은 테이블이 최적이 아닐 수 있습니다 테이블 스캔. 따라서 작은 테이블의 인덱스는 이 아니지만 테이블의 데이터로 유지해야합니다 ( ).

단 하나의 행이있는 테이블에 인덱스를 추가하는 것이 도움이되는지 확신 할 수 없습니까?

+1

왜 그렇게 느껴 집니까? 'id' 컬럼을 가지는 것은 테이블이 작더라도 두개의 테이블을 조인 할 수있는 좋은 방법입니다. 고유 한 식별자입니다. –

+0

추측하지 마십시오. 쿼리 분석기를 사용하여 특정 * 쿼리 *가 인덱스의 혜택을 볼 수 있는지 확인하십시오. 적어도 클러스터형 인덱스는 디스크의 행을 정렬하기 때문에 모든 테이블 액세스를 더 빠르게 만듭니다. –

+0

인덱스가 시스템에 도움이 될 수있는 최소 권장 행 수가 있습니다. 그 대답은 1입니다. –

답변

3

이해가 잘못되었습니다. 작은 테이블은 큰 테이블과 조인 할 때 인덱스가 특별히 유용합니다.

색인 비용은 삽입/업데이트 중에 두 부분, 저장 공간 및 처리 시간이 있습니다. 첫번째 것은 매우 싸다. 그래서 거의 버려진다. 따라서 많은 업데이트가있는 테이블을 가지고 있고 삽입이 적절한 구성을 적용 할 때만 고려해야합니다.

+0

도움을 주셔서 감사합니다. 나는 테이블이 한 페이지에 들어 맞을 때 인덱스가별로 도움이되지 않습니다. 나는 틀렸어. 인덱스가 한 행 (또는 심지어 10 행)이있는 테이블에 도움이된다는 뜻입니까? 그렇다면, 나는 의아해합니다!. –

+0

계속 ... 작은 테이블에서 색인의 이점에 대한 나의 이해를 향상시키는 기사를 참조 할 수 있습니까? 나는 그것을 깊이 배우고 싶다. 도와 주셔서 감사합니다. –

+0

여기에 비슷한 질문이 있습니다. http://stackoverflow.com/questions/252865/no-indexes-on-small-tables, 모든 사례가 같지 않은 것으로 간주하므로 테스트는 항상 기본 연습입니다. 그리고 다른 기사 https://richardfoote.wordpress.com/2009/04/16/indexes-on-small-tables-part-i-one-of-the-few/ –

관련 문제