Почему sp_executesql работает медленнее, когда параметры передаются в качестве аргументов

Запрос 1: (молниеносно)

sp_executesql "select * from tablesView where Id = 1"

vs.

Запрос 2: (слишком медленно)

sp_executesql "select * from tablesView where Id = @Id", N"@Id int", @Id=1

tablesView -представление, содержащее несколько соединений

LINQ всегда преобразует запросы в форму Query2, и, следовательно, производительность очень низка.

Вопросы: Мне нужна причина медлительности запроса 2 и любое разрешение, если оно есть. И разрешение для LINQ.

---- Дополнительные комментарии:

Падение производительности определенно связано с двумя столбцами, которые используют функции ранжирования (row_number), но я не могу их избежать. Мне они нужны.

10
задан WhoIsNinja 29 March 2011 в 21:42
поделиться