Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O que é STATISTICS TIME no SQL Server?


No SQL Server, você pode usar o SET STATISTICS TIME para exibir o tempo necessário para executar uma instrução T-SQL.

Mais especificamente, ele retorna o número de milissegundos necessários para analisar, compilar e executar cada instrução.

Quando SET STATISTICS TIME está ON , as estatísticas de tempo de uma instrução são exibidas. Quando OFF , as estatísticas de tempo não são exibidas.

A configuração de SET STATISTICS TIME é definido em tempo de execução ou execução e não em tempo de análise.

Exemplo


Aqui está um exemplo simples para demonstrar.
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 uma GUI?


Se você estiver executando sua consulta em uma GUI, como SSMS ou Azure Data Studio, talvez seja necessário clicar em Mensagens guia ou similar para visualizar as estatísticas de tempo.

Veja o que acontece quando executo a consulta anterior no Azure Data Studio.

Recebo os resultados, mas não há STATISTICS TIME em formação. Para visualizar essas informações, preciso clicar em Mensagens . Depois de fazer isso, posso ver as informações relevantes.

Consultas subsequentes


Uma vez definido como ON , quaisquer consultas subsequentes retornarão o STATISTICS TIME informações, até que seja definido como OFF .

Aqui está outra consulta ad hoc que executei na minha interface de linha de comando logo após a primeira.
SELECT COUNT(*) FROM Application.People;

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

Eu já tinha definido STATISTICS TIME para ON anteriormente, portanto, não há necessidade de fazê-lo novamente.

Desligue


Para desativá-lo, basta configurá-lo para OFF .
SET STATISTICS TIME OFF;

Agora, quando executo instruções T-SQL, não obtenho mais as estatísticas de tempo na consulta.
SELECT COUNT(*) FROM Application.People;

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