1

ショッピング カートにあるいくつかの製品を比較する必要がある状況にあります。カートにはユーザーが望む数のアイテムを入れることができますが、時間の経過に伴う平均はカートあたり約 5 ~ 15 アイテムです。

私の質問は、最適化/オーバーヘッドに関するものです。各製品がどの部門にあるかを確認し、送料を決定する必要があります。各製品の部門は製品に直接関連していません (つまり、製品定義テーブルに部門 ID 列はありません) が、製品 ID に基づいて部門 ID を照会して取得できます。

これが私の質問です。ID のリストをストアド プロシージャに渡し、ストアド プロシージャ内のリストをテーブル値パラメータのようなものと一緒に使用して、既存のテーブルをクエリする方がよいでしょうか (オーバーヘッドが少なくて高速です)。それとも、一度に 1 つずつ製品を照会し (カートの平均サイズが 5 ~ 15 の上限にあると仮定)、部門 ID を取得してから、次の項目に進む方が高速でしょうか?

私は TVP を使用したことがなく、スタック オーバーフローと msdn サイトに投稿された他の質問から学ぼうとしています。ですから、私が望む結果を得るために多くの時間を費やす前に、私はこの質問を提起しています.

4

1 に答える 1

1

一般に、TVP は高速である必要があります (必要に応じて高速化するのが容易になります)。リストが大きいほど、ID ごとに 1 つのクエリに対して TVP が有利になります。

TVP を使用するように設定するには、もう少し開発作業が必要です。そのため、小さなリスト (たとえば 3 つ以下) を超えることがない場合は、それだけの価値はないかもしれませんが、それ以外の場合は、間違いなくより良いアプローチです。

于 2013-08-29T16:21:03.817 に答える