sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er STATISTIK TID i SQL Server?

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)

  1. De bedste tilgængelige databaseovervågningsmuligheder for din virksomhed

  2. Brug OBJECTPROPERTY() til at finde ud af, om et objekt er en CHECK-begrænsning i SQL Server

  3. GDPR-overholdelse og din SQL-server

  4. Spar tid ved at køre Microsoft Access-rapporter ved hjælp af filtre i layoutvisning