デフォルトのタイムアウト値よりも時間がかかると、ストアド プロシージャでランダムな問題が発生したようです。ここでそのことを知らされました。
それで値を大きくしたところ、効果があったようです。
しかし、疑問に思います: クエリや操作に時間がかかる場合に備えて、常に非常に高い数値にしないのはなぜですか? MAXだからと言ってそんなに時間はかからないですよね?
それが事実である場合 (私は想像します)、なぜデフォルト値が非常に低い (30 秒だと思います) のでしょうか?
アップデート
もともとSqlCommandのCommandTimeoutの値を300(5分)にしていたのですが、それで「Context Switch Deadlock occurred」になってしまいました。そこで私はそれを 120 (2 分) に減らしました。いくつかのテストで「タイムアウトが期限切れになりました」が1回発生しましたが、まったく同じ範囲を再試行すると、2回目は正常に完了したため、「それらの1つ」にすぎないと思います-120では十分でない場合がありますタイムアウトですが、300 は明らかに多すぎます。IOW、この少なすぎるものと多すぎるもののバランスをとる行為は、「正確な科学」ではないようです.