데이터베이스 성능을 최적화하기 위해 인덱스를 읽었으며 인덱스 적용 측면에서 다양한 데이터베이스 상황에 대한 모범 사례를 수집하고자합니다.SQL Server - 인덱스를 유지 관리하는 가장 좋은 방법은 무엇입니까?
평범하지 않은 양의 테이블과 행을 사용하여 완전히 색인화되지 않은 데이터베이스를 사용하면 최대 성능을 얻기 위해 어떤 유형의 열에 어떤 색인이 적용되는지 결정할 때 어떤 규칙을 사용합니까? 어떤 쿼리를 사용하여 트릭을 분석합니까? 내가 가진 시작으로
: (http://asptutorials.net/SQL-Server/tutorial-on-indexes/에서) 송장의 테이블로 주 또는 "헤더"테이블의
은 테이블의 기본 키에 클러스터 된 인덱스를 확인합니다.
"invoice_row"와 같은 2 차 또는 "세부 사항"테이블의 경우, 하위 레코드를 그룹화하는 외래 키 (이 예제에서는 "invoice_id")를 만드십시오. 이는 invoice_row 테이블의 쿼리 대부분이 invoice_row_id 순서가 아닌 invoice_id 순서로 수행되기 때문입니다.
모든 테이블에 대해 테이블의 각 외래 키에 클러스터되지 않은 인덱스를 만듭니다. 이 시점에서 인덱스를 다루는 것에 신경 쓰지 마십시오. 테이블에서 수행 할 선택 쿼리에 대해 생각해보십시오. 어떤 종류의 "주문"명세서를 사용 하시겠습니까? 이러한 열에 클러스터되지 않은 인덱스를 만듭니다.
이제 일반적인 쿼리의 타이밍을 시작하고 느린 쿼리를 찾아보십시오. 특히 느린 색인을 식별하는 경우 키가 아닌 별도의 열을 색인에 추가하여 해당 색인의 표지 색인이 될 수있는 방법이 있는지 확인하십시오.
다른 어떤 "엄지 손가락"을 수집 할 수 있습니까? 어떤 도구를 사용해야합니까?
나는이, 중복 적어도 http://stackoverflow.com/questions/107132/what-columns-generally-make-good-indexes의 생각하지 않습니다. –