データアクセスオブジェクト:シングルトンまたは多くの小さなオブジェクト?

StackOverflow https://stackoverflow.com/questions/1805481

質問

多くのデータアクセスを行うアプリケーション(web、winなど)を開発する場合、リクエストの長さだけデータアクセスオブジェクトを開いたままにしておくこと(つまり、多くのことを連続して行い、次に閉じるとき)終了)、または新しいものを開いたり閉じたりしますか?

protected aDataContext dc = new aDataContext();

vs

private aObject GetInfo(...) {...}

前者の方がパフォーマンスに優れていると思います。しかし、それは悪い習慣のようです。

役に立ちましたか?

解決

通常、作業単位ごとに新しい接続を開いて使用し、できるだけ早く閉じます。接続文字列が同じである限り、内部的に.NET(またはADOまたはODBCなど)が接続をプールします。したがって、実際には非常に効率的です。考慮すべき他の問題、特にトランザクションがありますが、一般的には、このパターンの開閉を行い、.NETに接続プールを管理させることが最善です。

他のヒント

接続プールをより適切に使用します。 できるだけ多くの接続を開いたままにしてください。 接続を開くことは高価ですが、100万の接続を開くとサーバーが停止する可能性があります。 最良の結果を得るためにシナリオをベンチマークする必要があります。...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top