Hinweise auf obszön hohe Betreiberkosten im Abfrageplan?

7

Ich habe einen monatlichen ETL-Prozess, der zu kompliziert ist, um ihn hier zu erklären, aber im Grunde erhalten wir eine große Menge an Kundendaten, laden sie in verschiedene Tabellen und führen dann eine Reihe von Erstellungsprozessen aus.

Das Datenvolumen ist groß. Wir fügen der größten Tabelle mit insgesamt rund 700 Millionen Datensätzen monatlich 25 bis 30 Millionen Datensätze hinzu. Es gibt auch Support-Tabellen von jeweils 2 bis 300 Metern. Die Gesamtdaten für diesen Satz liegen bei ca. 3,5 TB.

In diesem Monat dauern einige Prozesse exponentiell länger als gewöhnlich. Ein Beispiel ist ein Prozess, der normalerweise in 30 Minuten abgeschlossen ist. Es dauerte ungefähr 40 Stunden, bis ich ihn getötet habe (er war noch nicht abgeschlossen).

Nicht alle Prozesse sind betroffen und einige laufen sogar noch schneller als gewöhnlich.

Natürlich liegt die Grundursache außerhalb des Rahmens von etwas, das ich hier fragen kann, aber es gibt etwas, das mich stört:

Wir haben aktuelle Abfragepläne, die für einzelne Bediener in Millionen% angezeigt werden.

Wie ein Clustered - Index Scan für 791,358,704%ein Merge - Join für 75,566,494%usw. Liegt in mehreren Abfragepläne, und diese sind Pläne genommen aus sys.dm_exec_query_plan.

Zeigen diese Abfragepläne ein anderes größeres Problem an?

Ich weiß mit Sicherheit, dass das Problem nicht veraltete Statistiken sind - wir haben Fullscans für alle wichtigen Tabellen ausgeführt und die größte Tabelle und Datenbank, die ich manuell mit Vorgrößen neu erstellt habe, um Fragmentierung zu vermeiden.

JNK
quelle

Antworten:

5

JNK,

Du meintest so etwas?

http://sankarreddy.com/wp-content/uploads/2011/03/CropperCapture2.jpg

Dies ist ein geschätzter Ausführungsplan, der basierend auf den Statistiken der Client-Tools generiert wird. Beachten Sie, dass es sich NICHT um ein Engine-Problem handelt. Wenn Sie möchten, dass MSFT dieses Problem behebt, stimmen Sie bitte für dieses Verbindungselement ab.

https://connect.microsoft.com/SQLServer/feedback/details/436184/huge-operator-cost-in-estimated-execution-plan

Da Sie SQL Server 2008 erwähnt haben, möchte ich Sie dazu ermutigen, sich die WAIT STATS-Informationen anzusehen, wenn der Job ausgeführt wird. Schauen Sie sich an, warum die Ausführung NICHT voranschreitet, und finden Sie den Engpass heraus.

http://blogs.technet.com/b/sqlos/archive/2008/07/18/debugging-slow-response-times-in-sql-server-2008.aspx

Überprüfen Sie auch die Informationen zu sys.virtualfilestats und prüfen Sie, ob signifikante E / A-Verzögerungen und Speicherauslastung vorliegen.

HTH

Sankar Reddy
quelle