Was genau misst die Abfragedauer beim Durchführen eines Profiler-Trace?
Ich habe eine gespeicherte Prozedur, die den Datenzugriff (SELECT) ausführt, und es dauert durchschnittlich etwa 30 Sekunden, um die Ergebnisse an die Anwendung zurückzugeben. Wenn ich jedoch einen Trace darauf ausführe, erhalte ich eine durchschnittliche Dauer von ungefähr 8 Sekunden, eine maximale Dauer von 12 Sekunden und eine durchschnittliche CPU von 5,5 Sekunden.
Was kann dazu führen, dass die Rückgabe der Ergebnismenge so viel länger dauert? Ich sammle keine großen NETWORKIO-Wartezeiten. Die Ergebnismenge besteht nur aus ungefähr 270 Zeilen einfacher Textdaten, insgesamt ungefähr 50 Spalten.
sql-server
query-performance
sqlbattsman
quelle
quelle
Antworten:
Die Dauer gibt die Gesamtzeit vom Start bis zum Abschluss der Anforderung durch SQL Server an, die die Zeit für das Senden über das Netzwerk, die CPU-Zeit, die Wartezeiten und die Ausführung angibt. Wie Aaron erwähnt hat, hat der SQL Server nach dem Empfang der Daten das Timing beendet und der Client verarbeitet dann. Dies sollte nicht Teil der Dauer sein.
quelle