SQL Server 인스턴스 중 하나를 2000에서 2005로 업그레이드하는 중입니다. 몇 가지 고급 보고에 액세스하기 위해 성능 대시보드(http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en)를 설치했습니다. 보고서 중 하나에 누락된(권장) 인덱스가 표시됩니다. 쿼리 최적화 프로그램에 의해 유지 관리되는 일부 시스템 보기를 기반으로 하는 것 같습니다.
제 질문은 인덱스 추천을받을시기를 결정하는 가장 좋은 방법이 무엇인지입니다. 최적화 도구의 모든 제안을 적용하는 것이 합리적이지 않다는 것을 알고 있습니다. 기본적으로 인덱스를 사용해보고 성능이 향상되면 유지하고 성능이 저하되거나 동일하게 유지되면 삭제하라는 조언을 많이 보았습니다. 결정을 내리는 더 좋은 방법이 있는지, 이 주제에 대한 모범 사례가 있는지 궁금합니다.
가장 먼저 알아두어야 할 사항입니다:
2000에서 2005로 업그레이드할 때(분리 및 연결을 사용하여) 반드시 다음 사항을 확인하세요:
이 작업을 수행하지 않으면 차선책이 나옵니다.
테이블이 대부분 쓰기인 경우 가능한 한 적은 인덱스를 원합니다. 테이블이 많은 읽기 쿼리에 사용되는 경우 WHERE 절이 인덱스에 포함되는지 확인해야 합니다.
데이터베이스에서 발생하는 가장 일반적인 유형의 쿼리를 조사하고 이를 기반으로 인덱스를 생성하는 것이 가장 좋습니다.
예를 들어, 매우 자주 쓰지만 거의 읽지도 않는 웹사이트 조회수를 저장하는 테이블이 있다고 가정해 보겠습니다. 그렇다면 이 테이블을 무작정 색인하지 마세요.
만약 쓰기보다 읽기보다 더 자주 액세스하는 사용자 목록이 있다면, 먼저 가장 많이 액세스하는 열(일반적으로 기본 키)에 클러스터된 인덱스를 생성합니다. 그런 다음 일반적으로 검색하는 열과 절별로 사용되는 열에 대한 인덱스를 생성합니다.