これは、複雑なオブジェクトを構築するためのより良いアプローチです (熱心な読み込み)。複数の結果セットを返すストアド プロシージャへの 1 回の呼び出し、またはそれぞれ 1 つの結果セットを持つストアド プロシージャへの複数回の呼び出しですか? .NET で T4/text テンプレートを使用して DAL を構築しているので、後者に傾いています。
ありがとう!
これは、複雑なオブジェクトを構築するためのより良いアプローチです (熱心な読み込み)。複数の結果セットを返すストアド プロシージャへの 1 回の呼び出し、またはそれぞれ 1 つの結果セットを持つストアド プロシージャへの複数回の呼び出しですか? .NET で T4/text テンプレートを使用して DAL を構築しているので、後者に傾いています。
ありがとう!
一度に複数の結果セットを返すストアド プロシージャを最後に書いたのはいつか思い出せません。それが実際に全体的な利益になることはまれです。
そのようなことを行う唯一の理由は、(a) パフォーマンスのためです。たとえば、SELECTS が一時テーブルまたはそれらすべてに共通する多くのセットアップを必要とする場合、または (b) データが呼び出しの間に変更するリスクがあり、シリアライズ可能な分離セマンティクスを使用したい。
すべての行セットが相互に独立しており、設定に共通点がない場合は、必ず分離してください。低レベルの接続プロトコル (TCP/IP や名前付きパイプなど) を使用していると仮定すると、往復のコストは実際には重要な要素ではなく、SQL over XML のようなおしゃべりなテクノロジではありません。さらに、sproc を個別に呼び出すことができれば、それらを非同期および並列で呼び出すことができ、手間をかけたければ優れたパフォーマンスを実現することさえできます。
これは、アプリケーションの全体的なアーキテクチャ設計モデルによって異なります。Table Data GatewayまたはActive Recordと呼ばれるものを使用している場合は、後者の方がおそらく優れています。ドメイン モデルまたはドメイン駆動設計と呼ばれるものを使用している場合は、前者の方が適切です。