Это не должно иметь значения или уменьшать блокировки компиляции или вызывать меньше перекомпиляций для объявления переменной на полпути вниз по стеку или наверху. Я делаю это на вершине для удобства чтения чаще, чем нет.
Чтобы разобраться в части вопроса «о чем думает мой администратор баз данных», единственное, что я могу придумать (кроме того, что Ник считает, что они думают о том, как что-то было раньше), возможно, они говорили о параметре Sniffing (см. Вариант 2 по этой ссылке на простой разговор)
О вашей блокировке -> Если вы видите истинную блокировку, это не тот тип состязания за блокировку компиляции, о котором говорит ваш администратор баз данных. Хотя верно то, что на это влияют определенные вещи (например, не таблицы, определяющие схему, не схема, которая квалифицирует ваши вызовы хранимых процедур), это, конечно, не является причиной высокого чтения и, вероятно, не является причиной вашей блокировки. Вы должны определенно сделать все возможное, чтобы избежать этих блокировок компиляции. Но я бы смотрел на настройку и оптимизацию остальной части кода хранимой процедуры как на более важную задачу, чем беспокоиться о том, где находятся переменные. Вы также можете прочитать Как определить и устранить блокировки компиляции, если хотите убедиться, что у вас нет проблем здесь.
Опубликуйте эти примеры до и после, и мы увидим, на что направляет администратор баз данных.