Měl jsem podobný problém s uloženými procedurami a pro mě se ukázalo, že je to „sniffování parametrů“. Vygooglujte to a zjistěte, zda to vyřeší váš problém, pro mě to bylo dramatické zrychlení, jakmile jsem to opravil.
V mém případě jsem to opravil tak, že jsem deklaroval lokální proměnnou pro každý parametr, který byl předán, a pak jsem přiřadil lokální proměnnou k této hodnotě parametru a zbytek proc použil místní proměnné pro zpracování...z jakéhokoli důvodu, toto porazilo parametr sniffing.