2017-05-31 2 views
0

Das mag trivial erscheinen, aber ich würde gerne wissen, wie genau das CXPACKET-Warten vermieden werden kann, indem Sie geeignete Indizierungstechniken verwenden?SQL Server - Möglichkeiten zur Vermeidung von CXPACKET wait

+3

Es ist nicht trivial, es ist zu breit. CXPACKET bedeutet, dass der Server die Parallelität nicht ordnungsgemäß verwendet. Dieses * könnte * durch übermäßige Scans verursacht werden (und ein Index könnte dazu beitragen, dass es zu einer Suche wird), aber wenn Scans ein Problem darstellen, sind I/O- und Ausführungszeiten weitaus dringender als CXPACKET wartet. Normalerweise machen Sie sich Sorgen, dass CXPACKET wartet, sobald Sie andere Probleme gelöst haben, und bis dahin ist die Indizierung wahrscheinlich nicht das, was solche Wartezeiten auflösen wird. Haben Sie ein tatsächliches Problem mit CXPACKET Wartezeiten und sonst nichts? Wenn ja, warum denken Sie, dass die Indexierung die Lösung ist? –

+0

@JeroenMosert Was genau spezifiziert es, wenn Sie erwähnen, dass ein "Index helfen könnte, es in eine Suche zu verwandeln"? –

+1

'SELECT * FROM [T] WHERE X = 1'. Wenn T 1 Million Zeilen hat und es genau eine gibt, wo 'X = 1' ist, dann erhalten Sie ohne einen Index einen parallelen Index-Scan, der anzeigt, dass CXPACKET wartet, wenn der Server den Ladevorgang nicht richtig ausbalanciert. Mit einem Index erhalten Sie eine Suche, die die Zeile ohne Wartezeiten sofort abruft. Aber das Warten auf CXPACKET wäre nicht das offensichtliche Symptom - die übermäßige I/O und Ausführungszeit wäre. –

Antwort

1

Sie sollten Ihre Abfragen untersuchen, die große Scans durchführen. Wenn diese Scans auf fehlende Indizes zurückzuführen sind (wenn genügend Prädikate vorhanden sind, der Server jedoch einen Scan durchführt), können Sie die Erstellung entsprechender Indizes vermeiden. Aber wenn Sie alle Daten lesen, zum Beispiel jeden Abend, wenn wir die gesamte Datenbank laden, alle Tabellen aus einer anderen Datenbank lesen (OLTP, von einem anderen Server wiederhergestellt), Daten denormalisieren und trotzdem ganze Tabellenscans durchführen, können wir nicht vermeiden CXPACKET warte, weil die einzige Option, die wir haben, ist, die Parallelität zu deaktivieren, aber das Laden wird verlangsamt. Es ist einfach da und der Server hat kein Problem damit. Wir haben nur diese Wartezeit als Top 1 auf unserem Server, aber es ist vollkommen in Ordnung

Verwandte Themen