Ich habe eine sehr große Abfrage (~ 630 Zeilen), die viele verschachtelte SELECT
Anweisungen enthält und aus mehreren Ansichten abgerufen wird. Auf unserem SQL Server ist die Parallelität auf 2 mit einem Schwellenwert von 95 festgelegt (auf diese Weise festgelegt, weil unser DBA sie basierend auf einigen anderen Anwendungen optimiert hat). Diese Abfrage dauert seit kurzem 5-10 Minuten, normalerweise weniger als eine Minute. Bei der Untersuchung der Ursache haben wir festgestellt, dass sie niemals Parallelität auslöst, immer seriell ausgeführt wird und den Verdacht hat, dass dies etwas mit ihrer Leistung zu tun hat. Was seltsam ist, ist, dass wir beim Experimentieren den Schwellenwert sogar wieder auf den Standardwert von 5 Sekunden gesenkt haben und er immer noch nicht parallel läuft. Was könnte es verhindern?
Wir haben die Tests in einer Nicht-Produktionsumgebung durchgeführt, die zu diesem Zeitpunkt von niemand anderem verwendet wurde. Dies war also die einzige Abfrage, die ausgeführt wurde. Unser DBA versuchte auch Dinge wie das Löschen von Caches und Plänen und sogar das Recycling des Systems, aber es hatte keine Auswirkungen.
Update 1 : Gemäß Kommentaren habe ich überprüft, dass die Statistiken jede Nacht aktualisiert werden, aber das Problem besteht weiterhin. Wir führen den Code tatsächlich auf eine frühere Version zurück, die keine so schwerwiegenden Leistungsprobleme aufwies, werden diesen Code jedoch weiterhin testen, da er die Leistung gegenüber dem alten Code verbessern sollte und dies tatsächlich beim ersten Testen getan hat. Wird hier entsprechend aktualisiert.