Создание плана запросов SQL Server в SSMS против сервера приложений - PullRequest
0 голосов
/ 30 мая 2019

У меня есть следующий сценарий:

После развертывания базы данных у нас есть сервер приложений .Net, который пытается выполнить хранимую процедуру.

Время ожидания в приложении составляет 30 секунд. Когда приложение впервые пытается выполнить сохраненный процесс, делается попытка создать новый план запроса, но это занимает более 30 секунд, и приложение имеет много тайм-аутов. Мой опыт показывает, что если хранимая процедура запускается вручную (с вводом репрезентативных данных) из SSMS, то при первом запуске она занимает около 1-2 минут, создается план, а затем приложение работает без сбоев.

Я работаю со сторонней компанией, и там есть администратор базы данных, который заявляет следующее:

" Ручной вызов этой хранимой процедуры создаст план, который зависит от используемых свойств соединения (SSMS), сгенерированный план не будет использоваться при вызове процедуры сервером приложений. "

Это правильно? Похоже, плохой дизайн, если используемый план запроса был связан со свойствами соединения? Есть ли разница между планом запроса, созданным, если вы запускаете хранимую процедуру вручную в SSMS по сравнению с тем, когда она выполняется приложением?

Если это так, каков оптимальный способ решения этой проблемы? Является ли увеличение времени ожидания единственным вариантом?

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