per le performance, prova una SP non dinamica per capire se è una questione di execution plan

ricordati degli indici sui campi della JOIN e della WHERE (e magari anche quelli della ORDER BY)

Domanda: ma perché tutte quelle opzioni di riordinamento?