SQL Serverコマンドタイムアウトを手動で増やします
-
28-10-2019 - |
質問
ASP.NET Webアプリを提供するテストWindowsホスト(50 MB)がありましたが、ほぼ正常に機能しましたが、100 MBにアップグレードされた後、SQL ServerをVisualからリモートで接続しようと頻繁にSQL Server TimeOutエラーを取得しました。 Studio(つまり、私のサイトのローカル開発)、私はSQLコマンドのタイムアウトを手動で増やそうとしましたが、どういうわけか解決されたと思いますが、私の行動は正しくないと思います。最終ユーザーにとってはすべてが正常に機能します。サイトを開発し、VS2010を介してリモートデータベースにアクセスする際に問題がありましたが、タイムアウトの増加を本当に検討する必要がありますか?タイムアウトをグローバルに増やすにはどうすればよいですか?各SQLコマンドのCommandTimeoutプロパティを設定する必要がありますか?接続文字列でそれを増やすことは可能ですか?もちろん、私は現在共有ホストを使用しているので、SQL Server Management Studioの設定を変更できません
私はタイムアウトプロパティに関して良い気持ちがないので、この問題について私に導いてください!ありがとう
解決
これをグローバルに設定する簡単な方法はないと思います。たとえば、接続文字列など。
あなたができること(しかし、これはあなたのコードをそのように動作させる必要があります)は、あなたのコマンドタイムアウトを構成に入れることです:
<configuration>
<appSettings>
<add name="CommandTimeout" value="120" />
</appSettings>
</configuration>
そして、あなたのコードで、構成からその値を読み、あなたのためにそれを使用します SqlCommand
クラス:
int commandTimeout = Convert.ToInt32(ConfigurationManager.AppSettings["CommandTimeout"]);
using(SqlCommand cmd = new SqlCommand(..(your SQL statement)..., connection))
{
cmd.CommandTimeout = commandTimeout;
}
これにより、コードを変更することなく、少なくともタイムアウトを調整できます。