Jag har haft samma krav. Index kan inte läggas till en CTE. Men i CTE väljer du att lägga till en ORDER BY klausulen på de sammanfogade fälten minskade exekveringstiden från 20 minuter eller mer till under 10 sekunder.
(Du måste också ADD SELECT TOP 100 PROCENT för att tillåta en ORDER BY i ett CTE-val.)
[redigera för att lägga till omskrivet citat från en kommentar nedan]:
Om du har DISTINCT i CTE så fungerar TOP 100 PROCENT inte. Den här fuskmetoden är alltid tillgänglig:utan att behöva TOP alls i markeringen, ändra ORDER BY-satsen så att den lyder:
ORDER BY [Blah] OFFSET 0 ROWS