In SQL Server puoi utilizzare SET STATISTICS TIME
per visualizzare il tempo necessario per eseguire un'istruzione T-SQL.
Più specificamente, restituisce il numero di millisecondi necessari per analizzare, compilare ed eseguire ciascuna istruzione.
Quando SET STATISTICS TIME
è ON
, vengono visualizzate le statistiche temporali per un estratto conto. Quando OFF
, le statistiche temporali non vengono visualizzate.
L'impostazione di SET STATISTICS TIME
è impostato al momento dell'esecuzione o dell'esecuzione e non al momento dell'analisi.
Esempio
Ecco un semplice esempio da dimostrare.
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
Risultato:
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.
Usi una GUI?
Se stai eseguendo la query in una GUI come SSMS o Azure Data Studio, potrebbe essere necessario fare clic su Messaggi scheda o simili per visualizzare le statistiche temporali.
Ecco cosa succede quando eseguo la query precedente in Azure Data Studio.
Ottengo i risultati, ma nessun STATISTICS TIME
informazione. Per visualizzare tali informazioni, devo fare clic su Messaggi . Una volta fatto, posso vedere le informazioni pertinenti.
Query successive
Una volta impostato su ON
, qualsiasi query successiva restituirà il STATISTICS TIME
informazioni, finché non viene impostato su OFF
.
Ecco un'altra query ad hoc che ho eseguito nella mia interfaccia a riga di comando subito dopo la prima.
SELECT COUNT(*) FROM Application.People;
Risultato:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ SQL Server parse and compile time: CPU time = 6 ms, elapsed time = 6 ms.
Avevo già impostato STATISTICS TIME
su ON
in precedenza, quindi non c'è bisogno di farlo di nuovo.
Spegnilo
Per disattivarlo, impostalo semplicemente su OFF
.
SET STATISTICS TIME OFF;
Ora, quando eseguo istruzioni T-SQL, non ottengo più le statistiche temporali sotto la query.
SELECT COUNT(*) FROM Application.People;
Risultato:
+--------------------+ | (No column name) | |--------------------| | 1111 | +--------------------+ (1 row affected)