In SQL Server können Sie die SET STATISTICS TIME
verwenden -Anweisung, um die Zeit anzuzeigen, die zum Ausführen einer T-SQL-Anweisung benötigt wird.
Genauer gesagt gibt es die Anzahl der Millisekunden zurück, die zum Analysieren, Kompilieren und Ausführen jeder Anweisung erforderlich sind.
Wenn SET STATISTICS TIME
ist ON
, wird die Zeitstatistik für einen Auszug angezeigt. Wenn OFF
, die Zeitstatistik wird nicht angezeigt.
Die Einstellung von SET STATISTICS TIME
wird zur Ausführungs- oder Laufzeit und nicht zur Analysezeit gesetzt.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung.
SET STATISTICS TIME ON;
GO
SELECT
c.CityName,
s.StateProvinceName AS State,
c.LatestRecordedPopulation AS Population
FROM Application.Cities c
INNER JOIN Application.StateProvinces s
ON c.StateProvinceID = s.StateProvinceID
WHERE c.LatestRecordedPopulation > 2000000
ORDER BY c.LatestRecordedPopulation DESC;
GO
Ergebnis:
Commands completed successfully. +-------------+------------+--------------+ | CityName | State | Population | |-------------+------------+--------------| | New York | New York | 8175133 | | Los Angeles | California | 3792621 | | Chicago | Illinois | 2695598 | | Brooklyn | New York | 2565635 | | Queens | New York | 2272771 | | Houston | Texas | 2099451 | +-------------+------------+--------------+ SQL Server parse and compile time: CPU time = 4 ms, elapsed time = 6 ms. Commands completed successfully.
Eine GUI verwenden?
Wenn Sie Ihre Abfrage in einer GUI wie SSMS oder Azure Data Studio ausführen, müssen Sie möglicherweise auf Nachrichten klicken Registerkarte oder ähnliches, um die Zeitstatistik anzuzeigen.
Folgendes passiert, wenn ich die vorherige Abfrage in Azure Data Studio ausführe.
Ich erhalte die Ergebnisse, aber keine STATISTICS TIME
Information. Um diese Informationen anzuzeigen, muss ich auf Nachrichten klicken . Sobald ich das getan habe, kann ich die relevanten Informationen sehen.
Nachträgliche Abfragen
Einmal auf ON
gesetzt , geben alle nachfolgenden Abfragen die STATISTICS TIME
zurück Informationen, bis es auf OFF
eingestellt ist .
Hier ist eine weitere Ad-hoc-Abfrage, die ich direkt nach der ersten in meiner Befehlszeilenschnittstelle ausgeführt habe.
SELECT COUNT(*) FROM Application.People;
Ergebnis:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ SQL Server parse and compile time: CPU time = 6 ms, elapsed time = 6 ms.
Ich hatte bereits STATISTICS TIME
eingestellt auf ON
zuvor, daher ist es nicht erforderlich, dies erneut zu tun.
Ausschalten
Um es auszuschalten, stellen Sie es einfach auf OFF
.
SET STATISTICS TIME OFF;
Wenn ich jetzt T-SQL-Anweisungen ausführe, erhalte ich keine Zeitstatistiken mehr unter der Abfrage.
SELECT COUNT(*) FROM Application.People;
Ergebnis:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ (1 row affected)