sql >> Databáze >  >> RDS >> Sqlserver

Co je STATISTICS TIME v SQL Server?

V SQL Server můžete použít SET STATISTICS TIME příkaz k zobrazení času potřebného k provedení příkazu T-SQL.

Přesněji řečeno, vrací počet milisekund potřebných k analýze, kompilaci a provedení každého příkazu.

Když SET STATISTICS TIME je ON , zobrazí se časové statistiky pro výpis. Když je OFF , časové statistiky se nezobrazují.

Nastavení SET STATISTICS TIME je nastaven v době spuštění nebo běhu, nikoli v době analýzy.

Příklad

Zde je jednoduchý příklad k demonstraci.

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

Výsledek:

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.

Používáte GUI?

Pokud dotaz spouštíte v GUI, jako je SSMS nebo Azure Data Studio, možná budete muset kliknout na Zprávy kartu nebo podobně, abyste viděli časové statistiky.

Zde je to, co se stane, když spustím předchozí dotaz v Azure Data Studio.

Dostávám výsledky, ale žádný STATISTICS TIME informace. K zobrazení těchto informací musím kliknout na Zprávy . Jakmile to udělám, uvidím relevantní informace.

Následné dotazy

Po nastavení na ON , všechny následující dotazy vrátí STATISTICS TIME informace, dokud není nastaveno na OFF .

Zde je další ad hoc dotaz, který jsem spustil v rozhraní příkazového řádku hned po prvním.

SELECT COUNT(*) FROM Application.People;

Výsledek:

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

Již jsem nastavil STATISTICS TIME na ON dříve, proto to není třeba opakovat.

Vypnout

Chcete-li jej vypnout, jednoduše jej nastavte na OFF .

SET STATISTICS TIME OFF;

Nyní, když spouštím příkazy T-SQL, již nedostávám časové statistiky pod dotazem.

SELECT COUNT(*) FROM Application.People;

Výsledek:

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

  1. Jak funguje SQLite Upper()

  2. Jak nainstalovat oracle instantclient a pdo_oci na stroj ubuntu?

  3. Jak získám ID více vložených řádků v MySQL?

  4. Jak definovat primární klíč automatického zvýšení v PostgreSQL