• 締切済み

データベースオブジェクトを複数用意する

.net c# で開発をしています。 データベースにアクセスする為にOracleOleDbを使用しているのですが、同じデータベースをアクセスするのに複数のインスタンスを作成しているのですが、こんなことって意味あるのでしょうか? プログラム内ではメソッド毎にそのオブジェクトを使い分けています。 ちなみにカスタマイズなので前回製造者がどういう意図があってそういった思想になったか明らかではありません。 以上、ご教授よろしく御願いします。

みんなの回答

noname#259269
noname#259269
回答No.2

Connection オブジェクトを複数同時に使っているという事でしょうか。 あるメソッドでコネクションをはったまま別メソッドで別コネクションをはっていて、かつその必要性がないのであれば、設計ミスですね。 そうではなく、一度に開いている Connection がひとつなのであれば、OleDb のリソースプーリングを意識している可能性もあります。 http://msdn.microsoft.com/ja-jp/library/cc407917.aspx

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

ソースを見てみないとはっきりとは分からないのですが、同じデータベースとなっていますが、テーブルも同じものという事でしょうか? 私がこれまでに読んできた本などでの指針としては、コネクションに関しては、有限なリソースなので必要な時の直前に取得し、使用し終わったら直ちに解放することがシステムに悪影響を及ぼさないという事のようです。 他のものについては、例えばDataAdapter関連であれば、クラスメンバに保存しておき、SelectCommandなどが違うのであれば、メソッドなりで適宜書き換えて、使いまわすという事はありではないかなと思います。