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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.