sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är STATISTIK TID i SQL Server?

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)

  1. Hur man skapar ett serverlöst GraphQL API för MySQL, Postgres och Aurora

  2. alternativ till REPLACE på en text- eller ntext-datatyp

  3. Java JDBC ignorerar setFetchSize?

  4. LPAD() Funktion i Oracle