Wie entscheidet MS SQL Server, wann bei der Ausführung von Abfragen "Parallelität" verwendet werden kann?

7

Wie entscheidet MS SQL Server, wann bei der Ausführung von Abfragen "Parallelität" verwendet werden kann? Ich gab vor kurzem eine andere Frage hier , dass, wenn bei der tatsächlichen Ausführungsplan verwendet Parallelität suchen , wenn ich auf der Abfrage einen Auftrag hatte und tat es nicht , wenn ich nicht den Auftrag hatte durch. Ich frage mich also, wie es herausfindet, wann es "Parallelität" verwenden kann und wann nicht.

Beth Whitezel
quelle

Antworten:

5

SQL Server trifft diese Entscheidung basierend auf den Kosten. Wenn Sie 'sp_configure' ausführen (stellen Sie sicher, dass erweiterte Optionen aktiviert sind), wird ein Eintrag für 'Kostenschwelle für Parallelität' angezeigt. Wenn der Optimierer schätzt, dass die Kosten höher als der run_value sind, wird Ihre Abfrage parallel ausgeführt.

Wenn die ORDER BY-Klausel in Ihrem Beispiel zu erhöhten Kosten führt, wird die Abfrage parallel ausgeführt.

SQLRockstar
quelle
1
Weitere Informationen zu den für die Parallelität berechneten Kosten finden Sie hier: msdn.microsoft.com/en-us/library/ms178065.aspx und hier technet.microsoft.com/en-us/magazine/dd320292.aspx .
Marian
Gibt es eine Möglichkeit (oder vielleicht ein Tool), um festzustellen, welchen Wert die 'Kostenschwelle für Parallelität' für eine Abfrage hat?
HeyJude