У меня было такое же требование. Индексы не могут быть добавлены в CTE. Однако в CTE выберите добавление предложения ORDER BY к объединенным полям, что сократило время выполнения с 20 минут или более до 10 секунд.
(Вам также необходимо добавить SELECT TOP 100 PERCENT, чтобы разрешить ORDER BY в CTE.)
[изменить, чтобы добавить перефразированную цитату из комментария ниже]:
Если у вас есть DISTINCT в CTE, то TOP 100 PERCENT не работает. Этот читерский метод всегда доступен: вообще не нуждаясь в TOP в select, измените оператор ORDER BY следующим образом:
ЗАКАЗАТЬ ПО [Blah] OFFSET 0 ROWS