TSQL - это диалект SQL от Microsoft и Sybase, поэтому ваши хранимые процедуры пишутся на TSQL, если вы используете SQLServer.
В большинстве случаев правильно написанные хранимые процедуры превосходят запросы adhoc.С другой стороны, процедуры кодирования требуют больше навыков, а отладка - довольно утомительный процесс.Очень трудно давать советы, не видя ваших процедур, но есть некоторые общие вещи, которые замедляют SP.
План выполнения генерируется при первом запуске, но иногда оптимальный план зависит от входных параметров.См. здесь для получения более подробной информации.
Другая вещь, которая препятствует созданию оптимального плана, - это использование условий в теле SP.Например,
IF (something)
BEGIN
SELECT ... FROM table1
INNER JOIN table2 ...
.....
END
ELSE
BEGIN
SELECT ... FROM table2
INNER JOIN table3 ...
.....
END
следует изменить на
IF (something)
EXEC proc1; // create a new SP and move code from IF there
ELSE
EXEC proc2; // create a new SP and move code from ELSE there