データアクセスオブジェクト:シングルトンまたは多くの小さなオブジェクト?
-
05-07-2019 - |
質問
多くのデータアクセスを行うアプリケーション(web、winなど)を開発する場合、リクエストの長さだけデータアクセスオブジェクトを開いたままにしておくこと(つまり、多くのことを連続して行い、次に閉じるとき)終了)、または新しいものを開いたり閉じたりしますか?
protected aDataContext dc = new aDataContext();
vs
private aObject GetInfo(...) {...}
前者の方がパフォーマンスに優れていると思います。しかし、それは悪い習慣のようです。
解決
通常、作業単位ごとに新しい接続を開いて使用し、できるだけ早く閉じます。接続文字列が同じである限り、内部的に.NET(またはADOまたはODBCなど)が接続をプールします。したがって、実際には非常に効率的です。考慮すべき他の問題、特にトランザクションがありますが、一般的には、このパターンの開閉を行い、.NETに接続プールを管理させることが最善です。
他のヒント
接続プールをより適切に使用します。 できるだけ多くの接続を開いたままにしてください。 接続を開くことは高価ですが、100万の接続を開くとサーバーが停止する可能性があります。 最良の結果を得るためにシナリオをベンチマークする必要があります。...
所属していません StackOverflow