Wofür steht der Begriff CXPACKET?

1631
blueberryfields

Google scheint keine Definition des Begriffs zu haben.

-1

4 Antworten auf die Frage

1
heavyd

Von Windows IT Pro :

A: Sie erhalten dies nur mit SQL 7, da dies nur bei parallelen Abfragen geschieht. Dies bedeutet, dass ein Thread der Abfrage auf ein Nachrichtenpaket von einem anderen wartet und der Thread, auf den er wartet, entweder durch eine herkömmliche Ursache blockiert wird oder einen Parallelitätsfehler aufweist.

CXPacket bedeutet, dass auf ein Datenpaket gewartet wird, dh die Ergebnisse einer internen Abfrage werden übergeben. Austausch bedeutet, dass auf ein Kontrollpaket gewartet wird, dh auf einen untergeordneten / geschwisterlichen Prozess, der Ihnen mitteilt, dass es abgeschlossen ist.

Wenn die Abfrage nicht abgeschlossen ist, stellen Sie sicher, dass SP1 angewendet wird, da in SP1 mehrere parallele Abfragekorrekturen vorhanden sind. Wenn das Problem immer noch nicht behoben ist, ist ein nicht behobener Fehler aufgetreten, und Sie müssen sich an Microsoft PSS wenden und einen Fehlerbericht erstellen. Sie sollten das Problem umgehen können, indem Sie MAXDOP (1) zur Abfrage hinzufügen, wodurch die Parallelisierung der Abfrage verhindert wird.

Dieser Thread bei SQL Team ist ebenfalls hilfreich.

1
quack quixote

Möglicherweise ist der CX eine Abkürzung für "Austausch", aber da er scheinbar mit Parallelität zusammenhängt, würde ich vermuten, dass er für "Kontext" stand (wie bei "Kontextwechsel").

Um die Antwort von heavyyd hinzuzufügen: CXPACKET ist eine Art Wartezeit, "die SQL Server zum Koordinieren der Parallelität verwendet - und Sie können sie im Allgemeinen ignorieren" ( ab diesem Beitrag ). Es ist in sys.dm_os_wait_stats (MSDN, siehe Tabelle der Wartetypen ) definiert, aber ich sehe nichts, was einen bestimmten Ursprung für den Begriff angibt. Diese Tabelle enthält diese Beschreibung:

Tritt auf, wenn versucht wird, den Austauschprozessor des Abfrageprozessors zu synchronisieren. Möglicherweise sollten Sie den Grad der Parallelität verringern, wenn Konflikte mit diesem Wartetyp zu einem Problem werden.

1
Susan

CXPACKET steht für Class Exchange Packet. Sie werden diese Art von Wartezeiten in SQL-Servern sehen, bei denen MAXDOP auf einen Wert außer 1 gesetzt ist. MAXDOP gibt den maximalen Parallelitätsgrad an. Null ist die Standardeinstellung von MAXDOP, und Abfragen versuchen, alle verfügbaren Kerne zu verwenden. Belassen Sie MAXDOP nicht bei ZERO und setzen Sie es nicht auf eins (nur ein Kern ist zu Tode erschlagen), wenn Sie nicht sicher sind, dass Sie niemals Parallelität verwenden möchten. Es ist üblich, MAXDOP auf [#of Ihre Kerne - 4] einzustellen. Einige Kerne müssen für den Server selbst reserviert werden. Wenn Sie über Hyper-Threading verfügen, wird die Einstellung für MAXDOP kompliziert. Siehe MSFT-Artikel:

https://support.microsoft.com/de-de/kb/2806535

Der SQL Server 2012 verfügt über einen Best Practice Analyzer (SQL Server 2012 BPA), mit dem Sie die MAXDOP-Einstellungen ermitteln können.

Sehen Sie sich Brent Ozars hervorragendes Video auf CXPACKET an: https://www.brentozar.com/archive/2013/08/what-is-the-cxpacket-wait-type-and-how-do-you-reduce-it/

0
A Panchal

Full form of CXPACKET is Class exchange packet and it happens which a query is running in parallelism.