I SQL Server kan du bruge SET STATISTICS TIME
sætning for at vise den tid, det tager at udføre en T-SQL-sætning.
Mere specifikt returnerer det det antal millisekunder, der kræves for at parse, kompilere og udføre hver sætning.
Når SET STATISTICS TIME
er ON
, vises tidsstatistikken for en erklæring. Når OFF
, vises tidsstatistikken ikke.
Indstillingen af SET STATISTICS TIME
er indstillet til execute eller run time og ikke til parse tid.
Eksempel
Her er et simpelt eksempel at demonstrere.
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.
Bruger du en GUI?
Hvis du kører din forespørgsel i en GUI, såsom SSMS eller Azure Data Studio, skal du muligvis klikke på Meddelelser fane eller lignende for at se tidsstatistikken.
Her er, hvad der sker, når jeg kører den forrige forespørgsel i Azure Data Studio.
Jeg får resultaterne, men ingen STATISTICS TIME
Information. For at se disse oplysninger skal jeg klikke på Beskeder . Når jeg har gjort det, kan jeg se de relevante oplysninger.
Efterfølgende forespørgsler
Når den er indstillet til ON
, vil eventuelle efterfølgende forespørgsler returnere STATISTICS TIME
information, indtil den er indstillet til OFF
.
Her er en anden ad hoc-forespørgsel, som jeg kørte i min kommandolinjegrænseflade lige efter den første.
SELECT COUNT(*) FROM Application.People;
Resultat:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ SQL Server parse and compile time: CPU time = 6 ms, elapsed time = 6 ms.
Jeg havde allerede indstillet STATISTICS TIME
til ON
tidligere, derfor er det ikke nødvendigt at gøre det igen.
Sluk den
For at slå det fra skal du blot indstille det til OFF
.
SET STATISTICS TIME OFF;
Nu, når jeg kører T-SQL-sætninger, får jeg ikke længere tidsstatistikken under forespørgslen.
SELECT COUNT(*) FROM Application.People;
Resultat:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ (1 row affected)