Da jeg fandt ud af, at det er ADO.NET-forbindelsen, der er årsagen til problemet, førte denne tråd mig til svaret.
Grundlæggende har forbindelser gennem SQL Server Management Studio (SSMS) som standard SET ARITHABORT ON
. ADO.NET-forbindelser gør det ikke.
Indstilling af ARITHABORT OFF
og at udføre forespørgslen direkte gennem SSMS giver mig den samme langsomme responstid.
Den største forskel, når du kører med eller uden denne indstilling, er, at der oprettes en anden forespørgselsplan for de to opkald. Når ARITHABORT
var OFF
, ville SSMS-kommandoen bruge den prækompilerede cachelagrede forespørgselsplan, som ADO.NET-forbindelsen brugte, og derfor timeout.
Ved at køre følgende kommandoer som administrator på databasen kører alle forespørgsler som forventet uanset ARITHABORT
indstilling.
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Jeg kan kun antage, at en kompileret forespørgselsplan er blevet korrupt eller ugyldig.
Jeg vil gå med dette som løsningen (jeg har opstemt svaret) på den anden tråd
Tak.