Почему для выполнения хранимой процедуры из приложения VB.net может потребоваться больше времени, чем из SSMS?

Я создал приложение winforms, которое извлекает данные из базы данных. Во время разработки (с использованием SQL-сервера на той же машине), но после выпуска, кажется, происходит значительная задержка при получении данных с удаленного сервера. Серверы разработки и выпуска имеют почти идентичные данные, так что это не должно быть проблемой.

Я думаю, что сузил проблему до одного вызова хранимой процедуры.

Используя SQL Profiler на сервере выпуска, он показывает, что для запуска сохраненной процедуры требуется почти 17 секунд, когда она вызывается из моего приложения, но лишь небольшая часть этого времени при запуске из SSMS:

введите описание изображения здесь

У меня вопрос: что могло вызвать такое поведение? Или что я могу сделать дальше, чтобы попытаться диагностировать проблему дальше?


person Gravitate    schedule 01.10.2018    source источник
comment
Canonical - Медленно в приложении, быстро в SSMS?   -  person Alex K.    schedule 01.10.2018
comment
Этот помог мне с той же проблемой stackoverflow.com/questions/3995386/   -  person GuidoG    schedule 01.10.2018
comment
@Larnu Да! Спасибо. Это помогло, НО ответ, который помог, был следующим: stackoverflow.com/a/2736682/1473412, а не принятый отвечать. Похоже, это вызвано тем, что SMSS автоматически устанавливает ARITHABORT ON в фоновом режиме.   -  person Gravitate    schedule 01.10.2018
comment
На самом деле это не вызвано ARITHABORT ON. Это просто дает запросу другой отпечаток, который позволяет ему иметь другой план запроса, который оказывается более эффективным.   -  person Nick.McDermaid    schedule 01.10.2018
comment
@ Nick.McDermaid Мои извинения. Моя фраза была плохой. Я просто имел в виду, что разница между двумя экземплярами вызываемого запроса заключается в том, что ARITHABORT по-разному устанавливается за кулисами SSMS. Я понимаю, что разница во времени выполнения не вызвана непосредственно ARITHABORT.   -  person Gravitate    schedule 01.10.2018