非常に複雑なマルチ結合TSQLSELECTクエリがあり、約8秒間実行され、約300Kレコードを返します。これは現在受け入れられます。しかし、後でそのクエリの結果を数回再利用する必要があるため、クエリの結果を一時テーブルに挿入しています。SELECTクエリの出力に一致する列を使用して、テーブルが事前に作成されます。しかし、INSERT INTO ... SELECTを実行するとすぐに、実行時間は2倍以上になり20秒以上になります。実行プランでは、クエリコストの46%が「テーブル挿入」に、38%がテーブルスプール(熱心なスプール)に費やされることが示されています。
なぜこれが起こっているのか、そしてそれをどのようにスピードアップするのか、何か考えはありますか?
ありがとう!