DBに接続し、いくつかのストアドプロシージャを実行してデータを取得するプログラムがあります。
データベースはSQLServer2008であり、プログラムはローカルで実行されます。接続はTCP/IP経由ですが、共有メモリが有効になっています。また、接続文字列のタイムアウトは45秒に設定されています。
SQL Server Management Studioで実行すると、実行に0〜5秒かかります。コードを実行すると、ランダムにタイムアウトします。
テストを行うために、タイムアウトを45秒から数分に増やしました。また、ブロッキングの問題を破棄するために、ストアドプロシージャがデータのみを「選択」することを確認しました(挿入または更新ステートメントはありません)。そして、次のようなselectステートメントに対していくつかのテーブル修飾子を試しました:、、nolock
.. readpast
..
また、チェックsp_who2
しdbcc opentran()
たところ、何もブロックされていません...そして.NetのSPIDはですrunning command ...
。.NetがDBの応答を待機している間の詳細については、SQL Server Management Studioを使用して、同じステートメント(ストアドプロシージャまたは選択)を問題なく実行できます。
何が起こっているのかについての提案はありますか?