O SQL Server solicita o tempo limite porque TempGetStateItemExclusive está sendo chamado continuamente

Eu administro um site com tráfego decente (~ 100.000 visualizações de página por dia) e esporadicamente o site foi derrubado devido a erros de tempo limite do SQL Server.

Quando executo o SQL Profiler, vejo um comando sendo chamado centenas de vezes por segundo como este:

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

Usamos o SQL Server para armazenar o estado da sessão do ASP.NET. O acima é o procedimento armazenado chamado para capturar o estado da sessão para uma determinada sessão. Parece estar em loop, pedindo as mesmas 2 ou 3 sessões repetidas vezes.

Achei umpromissor procurando hot fix isso parece resolver essa situação exata, mas não parece ter resolvido o problema para nós. (Suponho que esse hotfix esteja incluído no service pack .NET mais recente, porque parece que você não pode mais instalá-lo diretamente). Eu adicionei essa chave do registro manualmente, mas ainda vemos as chamadas de procedimento armazenado em loop como acima (solicitando a mesma sessão com muito mais frequência do que a cada 500ms)

Não consegui recriar isso em uma máquina de desenvolvimento. Quando duas solicitações são feitas para a mesma ID de sessão, ela parece bloquear corretamente e até tenta acessar o SQL até que a primeira página libere a sessão.

Alguma ideia? Agradeço antecipadamente!!!

questionAnswers(3)

yourAnswerToTheQuestion