ステートメントを多用するストアド プロシージャを含む ETL プロセスがありSELECT INTO
ます (最小限にログに記録されるため、生成されるログ トラフィックが少なくなるため高速になります)。1 つの特定のストアド プロシージャで行われる作業のバッチのうち、最もコストのかかる操作のいくつかは、クエリ結果をバッファリングし、作成中のテーブルにコピーするように見える熱心なスプールです。
熱心なスプールに関する MSDN ドキュメントは非常にまばらです。これらが本当に必要かどうか (そしてどのような状況で) について、より深い洞察を持っている人はいますか? 理にかなっているかもしれないし、そうでないかもしれないいくつかの理論がありますが、クエリからこれらを排除することに成功していません.
.sqlplan ファイルは非常に大きい (160kb) ため、フォーラムに直接投稿するのはおそらく妥当ではないと思います。
したがって、特定の回答に適している可能性のあるいくつかの理論を次に示します。
- クエリは、フォーマットされた日付の解析など、データ変換のためにいくつかの UDF を使用します。このデータ変換では、テーブルを構築する前に適切な型 (varchar の長さなど) をテーブルに割り当てるために熱心なスプールを使用する必要がありますか?
- 上記の質問の延長として、クエリでこの操作を駆動するものと駆動しないものについて、より深い見解を持っている人はいますか?