2

Web サービスの呼び出しを使用する C# 2008 Windows アプリケーションには、次のような大量のステートメントがあります。 C# 2008 アプリケーションでは、次のような linq to sql ステートメントを使用しています。

//コード

  TDataContext TData = new TDataContext();
  var TNumber = (from dw in cms_TData.people
  where dw.Organization_Name.ToUpper().Trim() == strOrgnizationName.Trim().

データベースに対して行われるすべての呼び出しの直前に、新しいデータ コンテキスト オブジェクトが作成されます。

これにより、データベースに何らかの接続プールの問題が発生しますか? もしそうなら、接続プーリングの問題を解決する方法を教えてもらえますか?

4

2 に答える 2

2

接続プーリングは問題ではなく、問題の解決策です。書き込みを可能にするのは接続プーリングです

TDataContext TData = new TDataContext();

限られた数の RDBMS 接続を使い果たしたり、頻繁に接続を閉じたり再開したりするためにシステムの速度が低下したりする心配はありません。このようなコードで遭遇する可能性がある唯一の問題はキャッシングです。TDataスコープ外になると、キャッシュされているものはすべて失われるため、同じ情報を不必要に何度も読み直す可能性があります。ただし、RDBMS 側のキャッシュはほとんどの場合に役立つため、ほとんどの場合、キャッシュでさえ問題にはなりません。

于 2013-04-12T10:16:22.893 に答える
0

DataContext は、タスクとして完了するとすぐにデータベース接続を閉じる軽量オブジェクトです。

したがって、これらのオブジェクトを多数作成しても、接続プーリングの問題が発生することはありません。ただし、これらのオブジェクトが異なるスレッドで同時に作成されている場合を除きます。

于 2013-04-12T10:16:07.017 に答える