MSDN をコピーして貼り付けないようにします
関係ありません。
CTE はクエリの実行とは無関係です。これは単なる言語構造です。これはきちんとした派生テーブルまたはサブクエリと考えてください。
これは、再帰的な CTE (後述) を除いて、すべて CTE はインラインでコーディングできます。 CTE コードを 1 回使用する場合は、読みやすさのためです . CTE を 2 回以上使用する場合は防御的です。間違いを犯したくないため、使用するたびに派生テーブルが異なります。
CTE が 2 回以上使用される場合、そのコードは 2 回以上実行されます。一度実行されて tempdb にキャッシュされることはありません。
要約:コードがインラインであるかのように、そうかもしれないし、そうでないかもしれません。
注:再帰 CTE は、単純に、der 内の派生テーブル内の派生テーブル内の派生テーブル内の派生テーブルです...同じことが当てはまります。
これは Tony Rogerson の記事 .インラインでコード化されている場合は、とにかく tempdb の使用が発生します。彼はまた、上で説明した「マクロ」拡張のため、一時テーブルを使用する方が良い可能性があるとも述べています
参考までに、同じことがビューにも当てはまります。マクロだけです。