Welche Probleme zeigt eine eifrige Spule an?

27

Wird derzeit auf SQL Server 2008 R2 ausgeführt

Ich versuche, die Leistung einer UPDATE-Anweisung zu erhöhen. Ich stelle fest, dass im Showplan eine Eager Spool-Operation auftaucht. Mein Verständnis der Spool-Operationen ist ziemlich grundlegend - sie erstellen während der Aktualisierung einen temporären Speicher für die Tabelle.

Ich weiß auch, dass eifrige Spools, obwohl sie wesentlich schlechtere Ausführungszeiten verhindern, häufig auf zugrunde liegende Probleme mit der Tabellenstruktur und / oder Abfrageanweisungen hinweisen.

Meine Frage ist ziemlich einfach: Wenn Sie in Ihrem Abfrageplan einen Eager-Spool sehen, welche Probleme suchen Sie zuerst?

Ich werde jeden Teil unseres Systems analysieren , um die Leistung zu steigern. Ich suche nur nach Anleitungen, wo ich anfangen soll.

Nick Vaccaro
quelle
Können Sie den Plan zeigen? Spulen können viele verschiedene Dinge bedeuten.
USR
In einigen Fällen kann dies auch vorkommen, UPDATEwenn die Tabelle über einen selbstreferenzierenden Fremdschlüssel verfügt oder auf UDFs zugreift, die Datenzugriff
Martin Smith,

Antworten:

18

Ich versuche, die Leistung einer UPDATE-Anweisung zu erhöhen. Ich stelle fest, dass im Showplan eine Eager Spool-Operation auftaucht.

Eager Spools können aus verschiedenen Gründen hinzugefügt werden, beispielsweise zum Schutz vor Halloween oder zur Optimierung der E / A bei der Verwaltung von nicht gruppierten Indizes .

Ohne den Ausführungsplan (auch nur ein Bild davon) zu sehen, ist es schwierig, sicher zu sein, welches dieser Szenarien in Ihrem speziellen Fall zutreffen könnte. Wenn die Vertraulichkeit der Daten ein Problem darstellt, können Sie eine anonymisierte Version des Plans zur Analyse mit SentryOne Plan Explorer hochladen .

Es kann durchaus sein, dass die Eager Spool nicht das ist, worauf Sie sich konzentrieren sollten. Viele Faktoren beeinflussen die tatsächliche Leistung von Abfragen, die Daten ändern. Wenn Sie Ihre Optimierungsbemühungen auf den geschätzten prozentualen Kosten für den Eager Spool-Operator basieren, berücksichtigen Sie bitte, dass diese Schätzungen unter Verwendung eines Modells erstellt werden , das nicht den Funktionen Ihrer bestimmten Hardwarekonfiguration entspricht.

Paul White sagt GoFundMonica
quelle
2

Manchmal kann die eifrige Spule vermieden werden, wenn andere blockierende Operatoren vorhanden sind, zum Beispiel. Es ist daher eine gute Idee, sicherzustellen, dass die Daten bereits bis zu diesem Zeitpunkt sortiert sind. (fehlende Indizes vielleicht?)

Wenn es für den Halloween-Schutz da ist, dann können Sie, wie die anderen Jungs gesagt haben, wenig tun.

John Alan
quelle