私は同じ要件を持っていました。 CTE にインデックスを追加することはできません。ただし、CTE では、ORDER BY を追加することを選択します。 結合されたフィールドの句により、実行時間が 20 分以上から 10 秒未満に短縮されました。
(CTE 選択で ORDER BY を許可するには、SELECT TOP 100 PERCENT も追加する必要があります。)
[以下のコメントからの言い換え引用を追加するために編集]:
CTE に DISTINCT がある場合、TOP 100 PERCENT は機能しません。この詐欺師の方法はいつでも利用できます:select で TOP をまったく必要とせずに、ORDER BY ステートメントを次のように変更します:
ORDER BY [Blah] OFFSET 0 ROWS