2012-04-19 3 views
6

Ich habe eine Abfrage, wo eine Indexsuche (nicht geclustert) dauert mehr Zeit 93% der gesamten Ausführungszeit.Verbessern der Leistung von nicht gruppierten Index Seek

der Ausführungsplan der Abfrage, die geschätzte Anzahl der Zeilen für die Indexsuche ist 1 und die tatsächliche Anzahl der Zeilen ist 209. ob das das Problem ist?

So verbessern Sie die Leistung eines nicht gruppierten Index suchen. Eine generische Antwort wird hilfreich sein.

Ausführungsplan: enter image description here

Und finden Sie die Abfrage,

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

Wie lange dauert die Abfrage? Warum denken Sie, dass es ein Problem gibt? – Tomalak

+0

die Abfrage dauert etwa 14 Sekunden ... die Anforderung ist, dass es in 3 Sekunden abgeschlossen sein sollte –

+3

Können Sie den Ausführungsplan und die Abfrage buchen? –

Antwort

12

Wenn ich eine solche Diskrepanz zwischen dem erwarteten Zeilen und tatsächlichen Zeilen sehen, würde ich bei der Aktualisierung der Statistik aller Beteiligten zunächst einen Blick Tabellen.

Der Abfrageoptimierer soll dies automatisch tun, aber ... manchmal bringt es Vorteile.

Dies erfordert normalerweise Berechtigungen vom Typ DBA.

Überprüfen Sie die Microsoft-Seite auf Update-Statistiken.

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

+0

+ 1 um einen sehr nützlichen und leuchtenden Link zur Verfügung zu stellen, wie man einen Clustered Index suchen kann. Meine Abfrage hat eine Menge Leistung von 1 Minute 49 Sekunden bis 3 Sekunden nach dem Aktualisieren der Statistik gewonnen. Vielen Dank GregHNZ! – G21

Verwandte Themen