sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué es ESTADÍSTICA DE TIEMPO en SQL Server?

En SQL Server, puede usar SET STATISTICS TIME declaración para mostrar el tiempo que lleva ejecutar una declaración T-SQL.

Más específicamente, devuelve la cantidad de milisegundos necesarios para analizar, compilar y ejecutar cada instrucción.

Cuando SET STATISTICS TIME está ON , se muestran las estadísticas de tiempo de un extracto. Cuando OFF , las estadísticas de tiempo no se muestran.

La configuración de SET STATISTICS TIME se establece en tiempo de ejecución o ejecución y no en tiempo de análisis.

Ejemplo

Aquí hay un ejemplo simple para demostrar.

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

Resultado:

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.

¿Usando una GUI?

Si está ejecutando su consulta en una GUI como SSMS o Azure Data Studio, es posible que deba hacer clic en Mensajes pestaña o similar para ver las estadísticas de tiempo.

Esto es lo que sucede cuando ejecuto la consulta anterior en Azure Data Studio.

Obtengo los resultados, pero no STATISTICS TIME información. Para ver esa información, debo hacer clic en Mensajes . Una vez hecho esto, puedo ver la información relevante.

Consultas posteriores

Una vez establecido en ON , cualquier consulta posterior devolverá el STATISTICS TIME información, hasta que se establezca en OFF .

Aquí hay otra consulta ad hoc que ejecuté en mi interfaz de línea de comandos justo después de la primera.

SELECT COUNT(*) FROM Application.People;

Resultado:

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

Ya había configurado STATISTICS TIME a ON anteriormente, por lo tanto, no es necesario volver a hacerlo.

Apágalo

Para apagarlo, simplemente configúralo en OFF .

SET STATISTICS TIME OFF;

Ahora, cuando ejecuto sentencias T-SQL, ya no obtengo las estadísticas de tiempo bajo la consulta.

SELECT COUNT(*) FROM Application.People;

Resultado:

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