23

を使用する代わりにCTE's( )を使用する利点はありますか。common table expressionstemp tables

両方のパフォーマンス テストを行いましたが、大きな違いは見つかりませんでした。

を使用することの長所と短所は何CTE'Sですか?

4

2 に答える 2

16

おそらく、CTE と一時テーブルの最大の違いは、CTE には単一のSELECT、INSERT、UPDATE、DELETE、または CREATE VIEW ステートメントの実行範囲があることです。

基本的に、一時テーブルのように CTE を再利用することはできません。

ドキュメントから

共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、または CREATE VIEW ステートメントの実行範囲内で定義される一時的な結果セットと考えることができます。CTE は、オブジェクトとして格納されず、クエリの間だけ存続するという点で、派生テーブルに似ています。派生テーブルとは異なり、CTE は自己参照することができ、同じクエリで複数回参照できます。

CTE は次の目的で使用できます。

  1. 再帰クエリを作成します。詳細については、共通テーブル式を使用した再帰クエリを参照してください。

  2. ビューの一般的な使用が必要ない場合に、ビューの代わりに使用します。つまり、定義をメタデータに保存する必要はありません。

  3. スカラー副選択から派生した列、または決定論的でない関数または外部アクセスを持つ関数によるグループ化を有効にします。

  4. 結果のテーブルを同じステートメントで複数回参照します。

于 2013-08-28T15:48:03.180 に答える