Ho avuto la stessa esigenza. Non è possibile aggiungere indici a un CTE. Tuttavia, nel CTE seleziona l'aggiunta di un ORDER BY la clausola sui campi uniti ha ridotto il tempo di esecuzione da 20 minuti o più a meno di 10 secondi.
(Devi anche AGGIUNGERE SELECT TOP 100 PERCENT per consentire un ORDER BY in una selezione CTE.)
[modifica per aggiungere una citazione parafrasata da un commento qui sotto]:
Se hai DISTINCT nel CTE, TOP 100 PERCENT non funziona. Questo metodo cheater è sempre disponibile:senza bisogno di TOP nella selezione, modifica l'istruzione ORDER BY per leggere:
ORDER BY [Blah] OFFSET 0 ROWS