Quando executo manualmente a consulta diretamente no SSMS, ela é executada com êxito (em 10 a 20 segundos). Quando a consulta é iniciada por meio do aplicativo Web .NET/IIS, ela trava praticamente indefinidamente e acaba bloqueando outras consultas. Acabei matando depois de esperar 20 minutos.
Quais são os fatores que fariam com que uma consulta fosse interrompida quando aplicada por meio do aplicativo .NET/IIS?
Ele contém algumas junções de tabelas grandes, mas, novamente, funciona muito bem no SSMS, então eu esperaria quase ao mesmo tempo no aplicativo da web .NET. Alguma ideia?
Obrigado!
Você está realmente executando exatamente a mesma consulta ou apenas uma semelhante?
O valor de um único parâmetro pode ter um impacto significativo no desempenho da consulta.
Além disso, como disse Greg Askew, verifique o nível de isolamento; se isso for diferente ao executar no IIS e ao executar no SSMS, você poderá acabar com uma condição de corrida ou até mesmo um impasse.
Recomendo verificar o desempenho do pool de aplicativos porque vi solicitações anteriores que falharam se demorassem muito ou usassem muita memória. É uma limitação que o SSMS não tem. Normalmente, uma falha será mostrada no back-end do seu aplicativo, mas faltam detalhes sobre como você lida com as verificações de erros
Se sim, verifique essas configurações; Eu colo algumas configurações genéricas recomendadas.
Comprimento da fila 2.000 (acima do padrão de 1.000)
Tempo limite de inatividade (minutos) 0 (abaixo do padrão de 20)
Ping ativado Falso (a partir do padrão True)
Limite de memória privada (KB) 0 (ilimitado, acima do padrão de 1.843.200 KB)
Intervalo de tempo regular (minutos) 0 (para evitar uma reciclagem e modificado do padrão de 1740)