2

SQlに1つのストアドプロシージャがあります。Azureは5分に定期的に呼び出して大量のデータを処理していますが、ログにあるように、以下のようにタイムアウトエラーが発生することがあります。

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

このクエリまたはDb全体のタイムアウトを増やすにはどうすればよいですか?そして、デフォルトのタイムアウトは何でしょうか?

アップデート

@Mingと@Ruchitの回答によると、タイムアウトはここでsql azureに接続しているためではないと思います。ログを確認すると、エラーの下に次のようなメッセージが表示されるためです。

警告:null値は、集計またはその他のSET操作によって削除されます。

これは、NULL値に対して何らかの集計関数を使用したため、メッセージの上にクエリが実行されていることを意味します。私は正しいと思いますか?他に考えられる原因は何ですか?

前もって感謝します。

4

2 に答える 2

3

http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/7070c2f9-07d1-4935-82c2-b74a196908ee/によると、SQLAzureは5分を超えるアイドル状態の接続を閉じます。あなたが言ったように、あなたは5分ごとにストアドプロシージャを呼び出しているので、タイムアウトの端にいる可能性があります。それが機能するかどうかを確認するために、4分ごとに変更することをお勧めします。

さらに、SQL Azureを使用する場合、再試行は非常に重要です。クエリが失敗した場合は、接続を閉じて数秒待ってから、新しい接続を作成して、クエリを再試行してください。通常、2回目は問題なく動作します。

よろしくお願いします、

明徐。

于 2012-04-17T08:11:06.360 に答える
1

明徐は正しいです。エラーの原因は、おそらく5分のタイムアウトです。ストアドプロシージャを呼び出す期間を変更できない場合、1つのオプションは、3分または4分ごとにSQLAzureをダミー呼び出しすることです。これにより、接続が閉じられなくなります。

于 2012-04-18T04:53:16.653 に答える