問題の根本にあるのはADO.NET接続であると判断すると、このスレッドが答えにつながりました。
基本的に、SQL Server Management Studio(SSMS)を介した接続には、デフォルトでSET ARITHABORT ON
があります。 。 ADO.NET接続はそうではありません。
ARITHABORT OFF
の設定 SSMSを介してクエリを直接実行すると、同じように応答時間が遅くなります。
この設定の有無にかかわらず実行する場合の主な違いは、2つの呼び出しに対して異なるクエリプランが作成されることです。 ARITHABORT
の場合 OFF
でした 、SSMSコマンドは、ADO.NET接続が使用していた、事前にコンパイルされたキャッシュクエリプランを使用するため、タイムアウトになります。
データベースの管理者として次のコマンドを実行すると、ARITHABORT
に関係なく、すべてのクエリが期待どおりに実行されます。 設定。
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
コンパイルされたクエリプランが破損しているか、無効になっているとしか考えられません。
私は他のスレッドの解決策としてこれを使用します(私は答えに賛成しました)
ありがとう。