2

私たちがホストしているNopCommerceサイト(Entity Frameworkを使用)で、サイトでクローラーを実行すると(リンク切れをチェックするため)、Webサーバー全体が数分間オフラインになり、他のホストされているサイトが応答しないことに気付きました。これは、Entity Frameworkが30の奇数のデータベース接続を開いており、1秒あたり数百のクエリを実行しているためと思われます(ページビューあたり約20〜40)。

NopCommerceによるEFの使用方法(数週間かかる)を変更したり、使用されているEFのバージョンを変更したりすることはできません。そのため、使用する同時接続の数を制限して、他のサイトでホストされるEFを提供することで、SQLServerへの影響を軽減できます。同じサーバーがデータベースにアクセスする可能性が高くなりますか?

私が理想的に望んでいるのは、特定のアプリケーションについて、同時DB接続の数を約10に制限することです。

4

1 に答える 1

0

あなたができる最善のことはMax Pool Size、接続文字列の設定を使用することだと思います。これにより、接続プール内の接続の最大数が制限されます。これは、アプリケーションが使用する接続の最大数であることを意味すると思います。ただし、プールから接続を取得できない場合、例外が発生するかどうかはわかりません。この方法で接続を制限しようとしたことはありません。

ADO.NET接続文字列に入れることができる設定について少し読んでください:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.100%29.aspx

そして、「接続プールの使用」についてもう少し読んでください。

http://msdn.microsoft.com/en-us/library/8xx3tyca%28v=vs.100%29.aspx

于 2012-08-21T14:56:57.303 に答える