I SQL Server kan du använda SET STATISTICS TIME
för att visa den tid det tar att exekvera en T-SQL-sats.
Mer specifikt returnerar den antalet millisekunder som krävs för att analysera, kompilera och köra varje sats.
När SET STATISTICS TIME
är ON
, visas tidsstatistiken för ett uttalande. När OFF
, visas inte tidsstatistiken.
Inställningen för SET STATISTICS TIME
ställs in vid körning eller körning och inte vid analystid.
Exempel
Här är ett enkelt exempel att visa.
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
Resultat:
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.
Använder du ett GUI?
Om du kör din fråga i ett GUI som SSMS eller Azure Data Studio kan du behöva klicka på Meddelanden flik eller liknande för att se tidsstatistiken.
Här är vad som händer när jag kör den tidigare frågan i Azure Data Studio.
Jag får resultaten, men ingen STATISTICS TIME
information. För att se den informationen måste jag klicka på Meddelanden . När jag har gjort det kan jag se relevant information.
Efterföljande frågor
En gång inställd på ON
, kommer alla efterföljande frågor att returnera STATISTICS TIME
information, tills den är inställd på OFF
.
Här är en annan ad hoc-fråga som jag körde i mitt kommandoradsgränssnitt precis efter den första.
SELECT COUNT(*) FROM Application.People;
Resultat:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ SQL Server parse and compile time: CPU time = 6 ms, elapsed time = 6 ms.
Jag hade redan ställt in STATISTICS TIME
till ON
tidigare, därför behöver du inte göra det igen.
Stäng av den
För att stänga av den ställer du bara in den på OFF
.
SET STATISTICS TIME OFF;
Nu, när jag kör T-SQL-satser, får jag inte längre tidsstatistiken under frågan.
SELECT COUNT(*) FROM Application.People;
Resultat:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ (1 row affected)