ストアド プロシージャには、4000 行以上を返す 1 つの選択があります。手順の後半でデータを処理するために、これを一時テーブルにするつもりでした。
100〜300行しか返さない他のさまざまな選択もあります。これらのテーブル変数を作成するつもりでしたが、これも手順の後半で作業します。
同じ手順で一時テーブルとテーブル変数を使用しても問題ありませんか?それともパフォーマンスの問題が発生しますか?
ストアド プロシージャには、4000 行以上を返す 1 つの選択があります。手順の後半でデータを処理するために、これを一時テーブルにするつもりでした。
100〜300行しか返さない他のさまざまな選択もあります。これらのテーブル変数を作成するつもりでしたが、これも手順の後半で作業します。
同じ手順で一時テーブルとテーブル変数を使用しても問題ありませんか?それともパフォーマンスの問題が発生しますか?
はい、大丈夫です。
プログラミングの実践に関しては、ストアド プロシージャを読んでいる場合は、どちらか一方の型を好みます (そしてテーブル変数に傾倒します)。ただし、一時テーブルにインデックスが必要な場合や、select into
.
これは、オプションの完全なセットを探す必要がある場所ですsommarskog.se - share_data
一時テーブルにさまざまなインデックスを追加できることは、私が一時テーブルを選択する特に理由です。
temp db に継続的にアクセスするのを避けるため、またインデックスが必要ない場合は、テーブル変数を使用します。
現在では、多くの場合CTE
、連携して機能する多数の を使用し、あらゆる種類のマテリアライズド テーブルの使用を避けています。
古典的な答え - 「場合によります!」
ここには、あなたの会社のリソース、時間の制約など、私たちが知らない多くの要因があると思います.
一般的に言えば、この目的には一時テーブルを使用しても問題ありません。そして、100〜300行(選択で言及)-それはピーナッツです。心配ない。