2016-07-12 2 views
1

인덱싱과 거의 같은 두 가지 쿼리를 향상 시키려고했습니다. 나는 첫 번째 쿼리에서 테이블 스캔을 보았고 그 인덱스를 만들기 위해 인덱스를 만들었습니다. 두 번째 쿼리를 보았을 때 SQL Server는 인덱스를 만들도록 지시했습니다. 마지막으로 생성 한 인덱스는 열의 순서 만 변경했으나 실행 중이었습니다. SQL Server Engine이 이미 테이블에서 Index seek을 수행하고 있음을 계획하십시오.SQL Server 실행 계획 인덱스 찾기

내 질문은 :

만약 SQL 서버 실행 계획입니다 이미 인덱스 나는 내가 만든이 다른 하나를 대체 한 인덱스를 삭제해야합니다,이 쿼리에 대해 다른 인덱스를 생성해야한다, 또는 내가 무시 추구 SQL Server가 제공하는 조언?

+0

쿼리 2 실행합니까 첫 번째 색인을 추가 한 후 허용되는 속도로? – Simon

+0

@ Simon yes, it run –

답변

2

구체적인 내용 없이는 대답 할 수 없습니다. 이것은 추측하는 게임이 아닙니다. 정확한 테이블 구조, 테이블 크기, 추가 한 인덱스 및 실행 계획을 게시하십시오.

당신이 을 추가 한 사실 지수는 것을 의미하지 않는다 당신은 최고의 인덱스를 추가했다. 또한 실행 계획에서 인덱스 찾기를 사용한다는 사실은 계획이 인 것을 의미합니다. 잘못된 색인 열 순서와 부분 술어 일치가 선행 열에서 '찾기'로 나타나고 차선책이되며 SQL은 더 나은 색인 (예 : 설명하는 증상)을 계속 추천합니다.

Understanding how SQL Server executes a queryHow to analyse SQL Server performance을 읽으십시오.

+0

나는 단지 색인을 찾는 것이 완벽하다는 것을 의미하지는 않는다는 것을 알고 있지만, 나는 다른 색인을 좀 더 잘 만들어야하는 이유보다 이미 좋다고 생각했다. –

0

나는 .. 첫 번째 쿼리에서 테이블 스캔을보고 인덱스 모든 검사가 나쁘지 않아, 잘되지 않습니다

모든 찾는다 추구하기 위해 인덱스를 생성

10 개의 고객이 각각 1000 개의 주문을 가지고 고객 테이블을 가지고 있다고 가정하면 주문 테이블의 총 행은 10000 개의 행이됩니다.

각 고객에 대해 1 위 주문을 얻으려면 주문 검색 중 당신이 10 계획을 선택하는 이유와 옵티마이 저가이 계획을 선택하는 이유를 이해해야합니다. Itzik Ben -Gan 놀라운 examples in this tutoria리터을 제공합니다 이상으로 인해 데이터 밀도, 임의 읽기에 탐색 추구 및 부품을 검사하고 optimiser이 검사를 선택할 수있는 이유에 대한 자세한로 전환에 video on SQL Bits

또한 크레이그 프리드먼이 이야기가

+0

감사합니다. 게시 한 링크가 표시됩니다. –