1

EntityFrameworkを備えた.NET4とMySQL.NETアダプタバージョン6.5.4を備えたMySQLのプログラムがあります。プログラムをしばらく(5分など)アイドル状態にしてデータベースの検索を試みた後、約5〜6秒の遅延が発生します。しかし、その後、検索は再び迅速になります。

ラグのプロファイリングを行ったところ、エンティティフレームワークが特定のアイドル時間後にデータベースへの接続を再確立しようとしているため、ラグが発生していることがわかりました。私のプログラムは約20台のマシンの小グループでのみ使用されるため、ルックアップを高速化するために接続を常にアクティブにしておく必要があります。それを行う方法はありますか?そうでない場合、この場合、MySQLへの接続速度をどのように改善できますか?

編集(更新):

接続文字列に「MinPoolSize= 1」を設定したところ、長時間アイドル状態でもラグが発生しないことがわかりました。それは私の問題を解決するようです。

4

1 に答える 1

0

永続的な接続が良いアイデアになることはめったにありませんが、そうは言っても...

ObjectContext で次のコマンドを実行できます。

yourObjectContext.ExecuteStoreCommand("SET SESSION wait_timeout=28800;");

これにより、データベースは接続を 8 時間開いたままにする必要があります。

于 2012-06-18T20:47:55.807 に答える