2012-04-19 3 views
6

인덱스 검색 (클러스터되지 않음)이 총 실행 시간의 약 93 %를 차지하는 쿼리가 있습니다.클러스터되지 않은 인덱스의 성능 개선 검색 Seek

쿼리 실행 계획에서 인덱스 탐색에 대한 예상 행 수는 1이고 실제 행 수는 209입니다. 이것이 문제가 되나요?

클러스터되지 않은 인덱스 검색의 성능을 향상시키는 방법. 일반적인 대답이 도움이 될 것입니다.

실행 계획 : enter image description here

그리고 다음은 내가 먼저 참여의 통계를 업데이트 보는 것,

SELECT TOP 11 DVPR1.IncidentID, DVPR2.IncidentID, Rel.ID, PER1.[LastName], PER1.[FirstName] 
FROM 
    DV_PHPersonalRecord DVPR1 
INNER JOIN Relationship Rel 
    ON Rel.source_Id = DVPR1.RowId 
    AND Rel.typeCode = 'RPLC' 
INNER JOIN DV_PHPersonalRecord DVPR2 
    ON DVPR2.RowId = Rel.target_Id 
INNER JOIN [T_Attribute] (nolock) 
    ON [T_Attribute].[ActRelationship_ID] = Rel.[ID] 
    AND [T_Attribute].[name] = 'MergeFlag' 
    AND ([T_Attribute].[valueString_Code] = 'pending') 
INNER JOIN [Person] PER1 (nolock) 
    ON DVPR1.[PersonDR]=PER1.[RowID] 
INNER JOIN [Person] PER2 (nolock) 
    ON DVPR2.[PersonDR]=PER2.[RowID] 
WHERE 
    DVPR1.TypeDR = 718990 
    AND 
    (PER1.[Code_ID] IS NULL OR (PER1.[Code_ID] = '6516' 
          AND PER1.[OptionsCode_ID] = '6522') 
    ) 
    AND 
    (PER2.[Code_ID] IS NULL OR (PER2.[Code_ID] = '6516' 
           AND PER2.[OptionsCode_ID] = '6522') 
    ) 
ORDER BY PER1.[LastName] ASC, 
     PER1.[FirstName] ASC 
+0

얼마나 걸리나요? 왜 문제가 있다고 생각하니? – Tomalak

+0

쿼리가 약 14 초 소요됩니다 ... 요구 사항은 3 초 내에 완료되어야합니다. –

+3

실행 계획과 쿼리를 게시 할 수 있습니까? –

답변

12

내가 예상 행과 실제 행 사이의 이러한 차이를 볼 때, 쿼리입니다 테이블.

쿼리 최적화 프로그램이이를 자동으로 수행하기로되어 있지만 ... 가끔은 이점이 있습니다.

일반적으로 DBA 유형 권한이 필요합니다.

업데이트 통계에서 Microsoft 페이지를 확인하십시오.

http://msdn.microsoft.com/en-us/library/ms187348.aspx

+0

+1은 클러스터 된 인덱스 찾기를 향상시키는 방법에 대한 매우 유용한 iluminating 링크를 제공합니다. 내 쿼리는 통계를 업데이트 한 직후 1 분 49 초에서 3 초로 많은 성능을 얻었습니다. 고마워 GregHNZ! – G21

관련 문제