私はこの変更を複数回繰り返しています。共有オブジェクト間のデータベース接続
私は2つのクラスShop
& Source
、
各Shop
(約1000製品)があり、
とSource
を持っているすべてのクラスが同じデータベース上のいくつかのアクションを実行する必要がIList<Item>
(約200)、
を持っています。まず
、私はすべてのオブジェクトとのオープンDbConnection
を共有:
そして、私のWebServiceのを構築し、それは私が開いた静的DbConnection
をキャッシュされた(それが聞こえる悪いとして)とそれを使用し、
問題となりました。
しかし、接続が散発的に閉じられ、ExecuteReader()
投げられた(MARSを使用していない)複数の要求をテストするときに問題が発生し始めました。
Thisと、接続プールに頼っている他の多くの情報源を読んだ後。
私はクエリの直前に接続を開いて終了したら処分するようにコードを置き換えました。
私はパフォーマンスの低下に気付きました。
私はプールが機能しているか確認することができます
質問(あるいは、それはないですか?):どのように私は私のSqlConnectionプールを監視することができますか?
質問:これらの多くのオブジェクト間でこの接続を共有する他のデザインはありますか?
ありがとうございます。
のConnectionStringは、同じ文字列が、各クラスのメンバーです。私はすべてのConnection、Command&Readerに 'using'ブロックを使用しています。 私は私の統計を見ていきます。私は何か他のものを滑っているかもしれないという結論を指しています。 –
@TomerWこれを置くことができるユーティリティクラスを作成します。すべてのクラスでこれを複製する理由はありません。 –
ありがとう、私は正確に私が何を変更したのかわからないが、コードをばかげた後、それは絶え間なく雷の速度を実行しています:) –