sql >> データベース >  >> RDS >> Sqlserver

CTE は tempdb でスペースを使用しますか?

    MSDN をコピーして貼り付けないようにします

    関係ありません。

    CTE はクエリの実行とは無関係です。これは単なる言語構造です。これはきちんとした派生テーブルまたはサブクエリと考えてください。

    これは、再帰的な CTE (後述) を除いて、すべて CTE はインラインでコーディングできます。 CTE コードを 1 回使用する場合は、読みやすさのためです . CTE を 2 回以上使用する場合は防御的です。間違いを犯したくないため、使用するたびに派生テーブルが異なります。

    CTE が 2 回以上使用される場合、そのコードは 2 回以上実行されます。一度実行されて tempdb にキャッシュされることはありません。

    要約:コードがインラインであるかのように、そうかもしれないし、そうでないかもしれません。

    注:再帰 CTE は、単純に、der 内の派生テーブル内の派生テーブル内の派生テーブル内の派生テーブルです...同じことが当てはまります。

    これは Tony Rogerson の記事 .インラインでコード化されている場合は、とにかく tempdb の使用が発生します。彼はまた、上で説明した「マクロ」拡張のため、一時テーブルを使用する方が良い可能性があるとも述べています

    参考までに、同じことがビューにも当てはまります。マクロだけです。



    1. PostgreSQLデータベース内のすべてのトリガーを一覧表示する2つの方法

    2. ajax呼び出しが多すぎるためにブラウザでメモリ不足エラーが発生しないようにする方法

    3. SQL Server(T-SQL)でデータベースメールの既定のパブリックプロファイルを作成する

    4. Oracleがデータを分割し、10%ごとにレコードを取得する方法