This post might contain affiliate links. We may earn a commission if you click and make a purchase. Your support is appreciated!

Wir, als Datenbank-Administratoren, können über diesen Kosten-Schwellwert definieren, wie der SQL Server mit der jeweiligen Workload umgeht bzw wann er welche Ressourcen für die Ausführung von Abfragen zur Verfügung stellt. So kann man beispielsweise über diesen Konfigurationsparameter ermöglichen, dass Abfragen die in der Regel weniger Ressourcen als andere Abfragen benötigen, diese nicht zu parallelisieren, während aufwändigere Abfragen parallel verarbeitet werden können.

Der Zusammenhang zwischen „CXPacket“ und MaxDoP

Durch diesen Umstand kann man nun Einfluss auf die Performance des SQL Servers nehmen und ist als solcher entscheidend für die Leistungsoptimierung. Hier sollte man also Sorgfalt walten lassen und diesen Wert auch von Zeit zu Zeit mal überprüfen, wie verhält sich die Workload der Applikationen und ist vielleicht mittlerweile (aufgrund von mehr Usern, mehr Daten, komplexeren Abfragen o.ä.) eine Optimierung des Kostenschwellwertes notwendig. In Zusammenarbeit mit dem MaxDop kann man die Auslastung der Ressourcen optimieren und somit die Antwortzeiten verkürzen.

Wie wirkt sich MaxDoP auf den Wait-Type „CXPacket“ aus?

Aus dem Blog-Beitrag von Paul Randall – Knee-Jerk Wait Statistics : CXPACKET – SQLPerformance.com – kann man entnehmen, dass der Wait-Type „CXPacket“ wie folgt entsteht:

„CXPacket“ ist ein Wait-Type, der auftritt, wenn eine Abfrage parallel verarbeitet wird und es zu einer Koordination zwischen den parallelen Threads kommt. Dieser Wait-Type ist normalerweise unvermeidlich, wenn parallelisierte Abfragen ausgeführt werden.

Also haben wir hier schon einmal den Zusammenhang zwischen dem Wartetypen und der Parallelität… CXPacket tritt normalerweise gehäuft auf, wenn es ein Problem mit der Ausführung von parallelen Abfragen gibt, beispielsweise wenn der Cost Threshold zu niedrig gewählt wurde, oder MaxDoP zu hoch, so dass zu viele Abfrage gleichzeitig (unnötigerweise) parallelisiert werden. Dies kann dazu führen, dass zu viele Threads für eine Abfrage parallel ausgeführt werden, was zu Wettbewerb und Latenz zwischen den Threads führt bzw die Threads um die Synchronisation und Ressourcennutzung konkurrieren.

This post might contain affiliate links. We may earn a commission if you click and make a purchase. Your support is appreciated!

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.