0

SQL Server 2008 R2 データベースに接続する WCF データ サービスがあります。サービスがデータベースからデータにアクセスしようとすると、接続タイムアウト値の前に接続がタイムアウトになり、タイムアウト例外がスローされます。

これは接続文字列です。

Data Source=XXXX;Initial Catalog=XXXX;MultipleActiveResultSets=False;
Connection Timeout=80;Integrated Security=false;User ID=XXX;Password=XXX

この接続文字列では、 として 80 秒を指定しましたConnection Timeoutが、接続は約 700 ミリ秒でタイムアウトになり、以下の例外がスローされます。

System.Data.SqlClient.SqlException (0x80131904): タイムアウトが発生しました。
操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

これは、一部のクエリでのみ発生しています。

どんな助けでも大歓迎です。

4

3 に答える 3

3

ConnectionTimeoutエラーの原因は ではありません。それはCommandTimeoutです。この質問も参照してください。

したがって、解決策は、CommandTimeoutより高価なクエリの場合に高い値を設定することです。

于 2012-11-15T09:31:48.593 に答える
0

このタイプのタイムアウトには、3つの原因が考えられます。

  1. どこかにデッドロックがあります

  2. データベースの統計および/またはクエリプランキャッシュが正しくありません

  3. クエリが複雑すぎるため、調整する必要があります

以下のリンクから取得

タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。ステートメントは終了されました

ここに記載されているようにクエリを最適化してみてください

于 2012-11-15T09:28:27.603 に答える