¿Por qué el sp_reset_connection
procedimiento almacenado del sistema tardaría más de unos pocos milisegundos en ejecutarse, tal como se ve a través de SQL Server Profiler?
Tomé un rastro simple de un sistema de producción usando SQL Server Profiler y luego usé SqlNexus para analizarlo. SqlNexus indica que sp_reset_connection tiene la mayor duración acumulativa: 33% de la traza general. La duración observada varía de 0-7 segundos (12 a 6,833,270 microsegundos) pero promedios en 0.956s.
Entiendo que se llama a sp_reset_connection cuando se reutiliza una conexión agrupada. He visto una sugerencia de que esto puede estar sucediendo debido a trazas extrañas , pero ese no parece ser el caso.
He leído lo que está haciendo el servidor cuando se llama al sproc, pero no creo que ninguno de ellos sea problemático en este caso: el código no deja transacciones abiertas o grandes tablas temporales que tendrían que limpiarse.
También miré /server/199974/sp-reset-connection-taking-a-long-time-to-run pero no fue útil.
EDITAR (2013-12-23): en todos los casos, las lecturas y escrituras son 0 y la CPU es casi siempre 0 (solo dos instancias de CPU no cero, ambas a 16 ms).
RPC:Starting
, RPC:Completed
y espero tipos por un período corto y luego mirar a través de los datos para ver qué tipos esperar los SPID están encontrando durante ese tiempo.