SQL Server 2005 データベースに直接接続するレガシー アプリケーションの WinForms があります。
同時に開いているクライアント アプリケーションが多数 (数百) あるため、データベースへの接続数を最小限に抑えたいと考えています。
接続を早期かつ頻繁に解放し、タイムアウト値を低く保つことができます。
他に考慮すべき点はありますか?
SQL Server 2005 データベースに直接接続するレガシー アプリケーションの WinForms があります。
同時に開いているクライアント アプリケーションが多数 (数百) あるため、データベースへの接続数を最小限に抑えたいと考えています。
接続を早期かつ頻繁に解放し、タイムアウト値を低く保つことができます。
他に考慮すべき点はありますか?
新しい接続を作成するときは、同じ接続文字列を使用するようにしてください。これにより、.Net は 1 つの接続プールを使用します。
できるだけ早く接続を破棄してください。
接続文字列自体に最大プール サイズを設定して、アクティブな接続の最大数を決定できます。
接続プールの導入を検討する必要があります。Java の世界では、通常、これはアプリケーション サーバーで「無料」で入手できます。ただし、気にするすべてがデータベース接続プーリングである場合、これはとにかく大きすぎます。
一般的な考え方は、(サーバー上の) 1 つのプロセスがデータベースへの限られた数の並列接続を開くことです。ある種の「プロキシ」アプリケーション (一種のミニ アプリケーション サーバー) でこれを行い、高価なものを再利用して、アプリへの着信接続用のデータベース接続を作成します。作成して破棄する方が安価です。
もちろん、これにはクライアント側にもいくつかの変更が必要になるため、それを前提条件として受け入れることができない場合、理想的なソリューションではない可能性があります。