Por que o sp_reset_connectionprocedimento armazenado do sistema levaria mais de alguns milissegundos para ser executado, conforme exibido no SQL Server Profiler?
Peguei um rastreamento simples de um sistema de produção usando o SQL Server Profiler e usei o SqlNexus para analisá-lo. SqlNexus indica que sp_reset_connection tem a maior duração cumulativa - 33% do rastreamento geral. A duração observada varia de 0 a 7 segundos (12 a 6.833.270 microssegundos), mas a média é de 0,956s.
Entendo que sp_reset_connection está sendo chamado quando uma conexão em pool é reutilizada. Vi uma sugestão de que isso pode estar acontecendo devido a traços estranhos , mas esse não parece ser o caso.
Eu li o que o servidor está fazendo quando o sproc é chamado, mas não acredito que algum deles seja problemático nesse caso - o código não está deixando transações abertas ou grandes tabelas temporárias que precisariam ser limpas.
Também consultei /server/199974/sp-reset-connection-taking-a-long-time-to-run, mas não foi útil.
EDIT (2013-12-23): em todos os casos, as leituras e gravações são 0 e a CPU quase sempre é 0 (apenas duas instâncias de CPU diferente de zero, ambas em 16ms).
RPC:Starting, RPC:Completede esperar tipos por um período curto, então olhar através dos dados para ver o que esperar tipos os spids está encontrando durante esse tempo.