Posso parar de chamar sp_reset_connection para melhorar o desempenho?
Meu rastreamento do criador de perfil mostra queexec sp_reset_connection
está sendo chamado entre cada lote de sql ou chamada de procedimento. temrazões para isso, mas posso impedir que seja chamado, se tiver certeza de que não é necessário, para melhorar o desempenho?
ATUALIZAÇÃO: A razão pela qual imagino que isso poderia melhorar o desempenho é dupla:
O SQL Server não precisa redefinir o estado da conexão. Eu acho que isso seria uma melhoria relativamente insignificante.Latência de rede reduzida porque o cliente não precisa enviar umexec sp_reset_connection
, aguarde a resposta e envie o sql que realmente deseja executar.O segundo benefício é o que me interessa, porque, em minha arquitetura, os clientes às vezes estão a alguma distância do banco de dados. Se cada lote sql ou rpc exigir uma viagem de ida e volta dupla, isso duplicará o impacto de qualquer latência de rede. Eliminar essas chamadas duplas poderia potencialmente melhorar o desempenho.
Sim, existem muitas outras coisas que eu poderia fazer para melhorar o desempenho, como re-arquitetar o aplicativo, e sou um grande fã de resolver a causa raiz dos problemas, mas, neste caso, só quero saber se épossível para impedir que sp_reset_connection seja chamado. Então, posso testar se há alguma melhoria de desempenho e avaliar adequadamente os riscos de não chamar isso.
Isso gera outra pergunta: a comunicação de rede com sp_reset_connection realmente ocorre como eu descrevi acima? ou seja, o cliente enviaexec sp_reset_connection
, aguarde uma resposta e envie o sql real? Ou tudo vai em um pedaço?