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?