これについては詳細でない質問がたくさんあるので、ここに行きます。
SQL Server 2008 を使用した C# での接続処理のベスト プラクティスは何ですか? SQL Server を呼び出すアセンブリ (この場合は WCF サービスによって使用されます) があります。一般に、これを行うには、接続オブジェクト、コマンド オブジェクト、リーダー オブジェクトの 3 つのオブジェクトが必要なようです。
呼び出しを機能させることができた唯一の信頼できる方法は、次のことです。
- 接続を開きます。
- using() { } ブロックでコマンドを作成する
- 応答を処理するリーダーを作成します。
- リーダーを廃棄します。
- using() ブロックの最後で Command を暗黙的に破棄する
- 接続を閉じます。
同じコマンドを複数回繰り返し実行すると、まだ開いている接続にアタッチされたコマンドまたはリーダー オブジェクトが既に存在するという、異常な問題に遭遇しました。唯一の堅実な解決策は、実行したすべてのコマンドで接続を閉じてから再度開くことでした。反復または順次 (異なるコマンド)。
私はDB接続処理のmysql_pconnectバックグラウンドから来ているので、これが質問です。
- コマンドごとに接続を開いたり閉じたりすると、パフォーマンスに大きな影響がありますか?
- 1.の場合、適切な回避策、またはコマンドを連続して繰り返すコード構造は何ですか?
- 接続、コマンド、またはリーダーを再利用する方法はありますか?
- 3. でない場合、これは実際にパフォーマンスやメモリ使用量に大きな影響を与えますか (ユーザーが気付くように)。