2012-04-19 2 views
6

У меня есть запрос, когда поиск индекса (не кластеризованный) занимает больше времени около 93% от общего времени выполнения.Улучшение производительности некластеризованного индекса Поиск

план выполнения запроса, примерное количество строк для поиска индекса равно 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, чтобы предоставить очень полезную и иллюстративную ссылку о том, как улучшить поиск кластерного индекса. Мой запрос получил большую производительность с 1 минуты 49 секунд до 3 секунд, сразу после обновления статистики. Большое спасибо GregHNZ! – G21

Смежные вопросы