Depois de determinar que é a conexão ADO.NET na raiz do problema, esse tópico me levou à resposta.
Basicamente as conexões através do Sql Server Management Studio (SSMS) por padrão têm SET
ARITHABORT ON
. As conexões ADO.NET não. Configurando
ARITHABORT OFF
e executar a consulta diretamente pelo SSMS me dá o mesmo tempo de resposta lento. A principal diferença ao executar com ou sem essa configuração é que um plano de consulta diferente é criado para as duas chamadas. Quando
ARITHABORT
estava OFF
, o comando SSMS usaria o plano de consulta em cache pré-compilado que a conexão ADO.NET estava usando e, portanto, o tempo limite. Ao executar os seguintes comandos como administrador no banco de dados, todas as consultas são executadas conforme o esperado, independentemente do
ARITHABORT
contexto. DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Só posso supor que um plano de consulta compilado ficou corrompido ou inválido.
Eu vou com isso como a solução (eu votei na resposta) no outro tópico
Obrigado.