O que a medição de duração no sql server realmente mede?

8

O que exatamente a duração da consulta mede ao realizar um rastreamento do criador de perfil?

Eu tenho um procedimento armazenado que executa o acesso a dados (SELECT) e está demorando em média 30 segundos para retornar resultados ao aplicativo. Mas quando executo um rastreio, recebo uma duração média de cerca de 8 segundos, duração máxima de 12 segundos, CPU média de 5,5 segundos.

O que poderia levar muito mais tempo para retornar o conjunto de resultados? Não estou acumulando grandes esperas do NETWORKIO. O conjunto de resultados é apenas cerca de 270 linhas de dados de texto simples, cerca de 50 colunas no total.

sqlbattsman
fonte
4
Isso não inclui o tempo necessário para entregar e renderizar os resultados no cliente.
Aaron Bertrand
Isso faz sentido, mas se houvesse um grande atraso (3x o tempo de execução para obter os resultados renderizados), você não esperaria grandes esperas do NETWORKIO? Minha última reinicialização foi ontem, com o NETWORKIO esperando um total de 230 segundos (não me parece muito por um dia).
Sqllattsman
3
Você tentou executar o comando com SET STATISTICS TIME etc? Além disso, se o tempo for gasto renderizando, você não verá isso na rede. Alguma diferença mostrada se você renderizar todos esses dados nos resultados para texto versus grade?
Aaron Bertrand
Os resultados no texto não são significativamente diferentes. Agora, quando eu executá-lo com SET STATISTICS TIME a duração I get total é muito mais preciso
sqlbattsman

Respostas:

1

Duração representa o tempo total do início ao fim da solicitação do SQL Server, que representa o tempo para enviar pela rede, tempo da CPU, aguarda e execução. Como Aaron mencionou, uma vez que o cliente recebeu os dados, o SQL Server terminou o tempo e o cliente está processando. Isso não deve fazer parte da duração.

SheldonH
fonte