Почему один и тот же запрос SQL будет иметь результат с другим планом выполнения при выполнении через процедуру sp_executeSQL?

Как указано в заголовке, я не понимаю, почему sp_executeSQL будет генерировать совершенно другой план выполнения, чем выполнение запроса из Sql Management Studio.

Мой рассматриваемый запрос будет занимает 3 секунды при запуске из SQL Management Studio, тогда как выполнение запроса в Management Studio через sp_executeSQL займет 5 минут.

Я обновил статистику и просмотрел индексы, но в моей голове оставался факт, что план выполнения из sp_executeSQL был НАМНОГО хуже, чем запуск sql непосредственно из моей студии управления.

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

Спасибо

6
задан Nathan Tregillus 30 March 2011 в 14:44
поделиться