Медлительность хранимой процедуры на SQL сервере - PullRequest
0 голосов
/ 07 февраля 2020

Когда я выполняю хранимую процедуру с некоторыми входными данными, выполнение заняло более 30 секунд, но когда я непосредственно выполняю запрос с теми же входными данными, это заняло всего 3 секунды.

Я думаю, это из-за плохого плана выполнения, который остается в кэше, поэтому сначала я удалил эту хранимую процедуру и пересоздал ее, но это не сработало. Поэтому я добавил параметр WITH RECOMPILE в хранимую процедуру и попытался, но это также не работает.

Затем я попытался назначить входные параметры локальным переменным, а затем использовал эти локальные переменные внутри хранимой процедуры (вместо фактических параметров), и после этого время выполнения хранимой процедуры сокращается до 3 секунд. (если это происходит из-за перехвата параметров, опция WITH RECOMPILE также разрешит это правильно!).

И даже я восстановил ту же резервную копию на другом сервере, а затем выполнил ту же хранимую процедуру с теми же входами, что заняло всего 3 секунды.

Так может кто-нибудь прояснить логику c за ней?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...