Welche praktischen Auswirkungen hat die Warnung sys.dm_exec_query_stats in der Dokumentation?

10

In der Dokumentation für sys.dm_exec_query_statsheißt es:

Eine erste Abfrage von sys.dm_exec_query_stats kann zu ungenauen Ergebnissen führen, wenn derzeit eine Workload auf dem Server ausgeführt wird. Genauere Ergebnisse können durch erneutes Ausführen der Abfrage ermittelt werden.

Ich frage manchmal diese DMV während einer aktiven Arbeitslast ab und würde genaue Ergebnisse bevorzugen. Ich weiß nicht, wie ich die obige Warnung in der Praxis anwenden soll. Sollte ich die DMV immer zweimal abfragen und die zweite Ergebnismenge verwenden, da dies genauer ist? Das fühlt sich ein bisschen weit hergeholt an. Muss ich mir bewusst sein, auf welche Weise die DMV ungenau sein kann, damit ich dies in meine Analyse einbeziehen kann? Wenn ja, welche Art von Ungenauigkeiten können auftreten: fehlende Zeilen, veraltete Werte, inkonsistente Zeilen oder etwas anderes?

Was sind Best Practices bei der Verwendung sys.dm_exec_query_statswährend einer aktiven Arbeitslast?

Joe Obbish
quelle

Antworten:

6

Ich habe die Dokumentation aktualisiert, um den Wortlaut klarer zu gestalten. Der Benutzer sollte darüber informiert werden, dass beim Ausführen einer Abfrage für die DMV nur Ausgaben für abgeschlossene Elemente und nicht für Elemente während des Flugs erstellt werden. Führen Sie daher die gesamte Arbeitslast aus, um sicherzustellen, dass alle Daten erfasst werden.

Der neue Wortlaut lautet wie folgt und wendet die verschiedenen DMVs an, in die der vorherige Wortlaut aufgenommen wurde.

Die Ergebnisse von sys.dm_exec_query_stats können bei jeder Ausführung variieren, da die Daten nur fertige Abfragen widerspiegeln und keine, die sich noch im Flug befinden.

Sean Gallardy
quelle
4

Ich weiß nicht, wie ich die obige Warnung in der Praxis anwenden soll.

Das liegt daran, dass es vage ist. Am Ende der Dokumentationsseite befindet sich ein Leerzeichen, um Feedback zu hinterlassen. Nur so kann jemand den Verlauf dieser Dokumentationsseite einsehen und feststellen, warum diese Warnung hinzugefügt wurde, wenn sie noch erforderlich ist oder aktualisiert werden muss.

Ich habe einen kurzen Blick auf die Implementierung in SQL Server 2017 CU 15 geworfen und es scheint keinen besonderen Grund zu geben, Inkonsistenz (oder "Ungenauigkeit") zu erwarten, abgesehen davon, dass die Summen erst am Ende jeder Anweisungsausführung aktualisiert werden .

Paul White 9
quelle