SQL Server solicita un tiempo de espera ya que TempGetStateItemExclusive se llama continuamente

Ejecuto un sitio con tráfico decente (~ 100,000 páginas vistas por día) y esporádicamente el sitio se ha puesto de rodillas debido a errores de tiempo de espera de SQL Server.

Cuando ejecuto el Analizador de SQL, veo un comando que se llama cientos de veces por segundo de esta manera:

...
exec dbo.TempGetStateItemExclusive3 @id=N'ilooyuja4bnzodienj3idpni4ed2081b',...
...

Usamos SQL Server para almacenar el estado de la sesión ASP.NET. Lo anterior es el procedimiento almacenado llamado para capturar el estado de sesión para una sesión determinada. Parece estar haciendo un bucle, pidiendo las mismas 2 o 3 sesiones una y otra vez.

Encontre unprometedor buscando hot fix Eso parece abordar esta situación exacta, pero no parece haber resuelto el problema por nosotros. (Supongo que esta revisión se incluye en el paquete de servicio .NET más reciente, porque parece que ya no se puede instalar directamente). Agregué esa clave de registro manualmente, pero aún vemos las llamadas de procedimiento almacenado en bucle como arriba (solicitando la misma sesión con mucha más frecuencia que cada 500 ms)

No he podido recrear esto en una máquina de desarrollo. Cuando se realizan dos solicitudes para el mismo ID de sesión, parece que se bloquea correctamente, e incluso intenta llegar a SQL hasta que la primera página libera la sesión.

¿Algunas ideas? ¡¡¡Gracias de antemano!!!

Respuestas a la pregunta(3)

Su respuesta a la pregunta