У меня есть хранимая процедура, которая принимает 1 параметр.Когда я запускаю хранимую процедуру из SQL Server Management Studio, она запускается через 2-4 секунды.Когда я звоню с помощью консольного приложения, это занимает более 30 секунд.SQL Server является удаленным, и SSMS и мое приложение запускаются с моего локального компьютера, поэтому я не думаю, что это проблема сети.
Я запустил SQL Server Profiler, чтобы попытаться отследить проблему, и я вижу одну вещь: когда он запускается из SSMS, он запускает оператор, перекомпилирует его, затем запускает его снова, затемзавершает его следующим образом:
SP:StmtStarting
SP:Recompile
SQL:StmtRecompile
SP:StmtStarting
SP:StmtCompleted
2 записи перекомпиляции имеют EventSubClass «2 - Статистика изменена»
Из приложения я вижу только записи для SP: StmtStarting & SP: StmtCompleted, нет записей перекомпиляции.
Я вызываю точно такую же хранимую процедуру с тем же значением параметра.Почему SSMS перекомпилируется на основе статистики, а мое консольное приложение - нет?