0

ストアドプロシージャにアクセスするためにLINQtoSQLを使用しています。これは私のローカルSQLサーバーで正常に機能します。しかし、内部ネットワーク内の別のサーバーを指すと、タイムアウトが発生します。SQLプロファイラーでは、問題のあるサーバーに送信されるクエリを確認できます。これは、クエリがサーバーにヒットして正しく実行されていることを意味しますか?

問題のあるサーバーでLINQ出力を問題なく直接実行できます。これはおそらくコードの問題ではなく、SQLサーバーサーバーの構成に関する問題ですか?トラブルシューティングするには何を確認すればよいですか?

4

1 に答える 1

2

接続タイムアウトは、コマンドタイムアウトとは異なります。

参照:SqlCommand.CommandTimeoutとSqlConnection.ConnectionTimeoutの違いは何ですか?

要約すると、接続タイムアウトは接続を確立するための時間です。

コマンドタイムアウトは、コマンドを実行させる時間です。最初のレコードを取得するのにかかる時間だけでなく、データセット全体を取得するのにかかる時間。

SQLプロファイラーにクエリが表示されている場合は、はい、送信されています。したがって、基本的に、コマンドタイムアウトのデフォルトの制限である30秒に達しています。

コマンドのタイムアウトを500に変更することから始めて、それがどこに行くのかを確認することをお勧めします。次に、パフォーマンス分析を開始して、なぜこれほど時間がかかるのかを判断します。おそらく、要求されたデータの一部を削除したり、クエリをより適切にサポートするためにインデックスを追加したりすることができます。

于 2012-10-04T17:18:40.110 に答える