Podobny problem miałem z procedurami składowanymi i dla mnie okazało się, że jest to „podsłuchiwanie parametrów”. Wygoogluj to i zobacz, czy to rozwiąże twój problem, dla mnie było to dramatyczne przyspieszenie, gdy to naprawiłem.
W moim przypadku naprawiłem to, deklarując zmienną lokalną dla każdego przekazanego parametru, a następnie przypisałem zmienną lokalną do tej wartości parametru, a reszta procedury używała zmiennych lokalnych do przetwarzania ... z dowolnego powodu, to pokonało wąchanie parametrów.