sql >> Database >  >> RDS >> Sqlserver

Wat is STATISTIEKEN TIJD in SQL Server?

In SQL Server kunt u de SET STATISTICS TIME . gebruiken statement om de tijd weer te geven die nodig is om een ​​T-SQL-statement uit te voeren.

Meer specifiek geeft het het aantal milliseconden terug dat nodig is om elke instructie te ontleden, compileren en uitvoeren.

Wanneer SET STATISTICS TIME is ON , worden de tijdstatistieken voor een afschrift weergegeven. Wanneer OFF , worden de tijdstatistieken niet weergegeven.

De instelling van SET STATISTICS TIME is ingesteld op uitvoerings- of runtime en niet op parseertijd.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren.

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

Resultaat:

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.

Gebruik je een GUI?

Als u uw query uitvoert in een GUI zoals SSMS of Azure Data Studio, moet u mogelijk op de Berichten klikken tabblad of iets dergelijks om de tijdstatistieken te bekijken.

Dit is wat er gebeurt als ik de vorige query in Azure Data Studio uitvoer.

Ik krijg de resultaten, maar geen STATISTICS TIME informatie. Om die informatie te bekijken, moet ik op Berichten . klikken . Zodra ik dat heb gedaan, kan ik de relevante informatie zien.

Vervolgvragen

Eenmaal ingesteld op ON , zullen eventuele volgende zoekopdrachten de STATISTICS TIME informatie, totdat het is ingesteld op OFF .

Hier is nog een ad-hocquery die ik net na de eerste in mijn opdrachtregelinterface heb uitgevoerd.

SELECT COUNT(*) FROM Application.People;

Resultaat:

+--------------------+
| (No column name)   |
|--------------------|
| 1111               |
+--------------------+
SQL Server parse and compile time: 
   CPU time = 6 ms, elapsed time = 6 ms.

Ik had al STATISTICS TIME ingesteld naar ON eerder, dus het is niet nodig om het opnieuw te doen.

Zet het uit

Om het uit te zetten, zet je het gewoon op OFF .

SET STATISTICS TIME OFF;

Als ik nu T-SQL-instructies uitvoer, krijg ik niet langer de tijdstatistieken onder de query.

SELECT COUNT(*) FROM Application.People;

Resultaat:

+--------------------+
| (No column name)   |
|--------------------|
| 1111               |
+--------------------+
(1 row affected)

  1. SQLite-datum en tijd

  2. Hoe krijg ik met MS SQL een duidelijke lijst van woorden die in alle Field Records worden gebruikt?

  3. NOLOCK Hint gebruiken in EF4?

  4. De anatomie van SQL Server-impasses en de beste manieren om ze te vermijden