Toen ik eenmaal had vastgesteld dat het de ADO.NET-verbinding is die aan de basis van het probleem ligt, leidde deze thread me naar het antwoord.
In principe hebben verbindingen via Sql Server Management Studio (SSMS) standaard SET ARITHABORT ON
. ADO.NET-verbindingen niet.
ARITHABORT OFF
instellen en het rechtstreeks uitvoeren van de query via SSMS geeft me dezelfde trage reactietijd.
Het belangrijkste verschil bij het uitvoeren met of zonder deze instelling is dat er een ander queryplan wordt gemaakt voor de twee aanroepen. Wanneer ARITHABORT
was OFF
, zou de SSMS-opdracht het vooraf gecompileerde queryplan in de cache gebruiken dat de ADO.NET-verbinding gebruikte, en dus een time-out.
Door de volgende opdrachten uit te voeren als beheerder op de database, worden alle query's uitgevoerd zoals verwacht, ongeacht de ARITHABORT
instelling.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Ik kan alleen maar aannemen dat een gecompileerd zoekplan corrupt of ongeldig is geworden.
Ik zal dit gebruiken als de oplossing (ik heb op het antwoord gestemd) in de andere thread
Bedankt.