Изглежда, че плановникът на заявки е взел решение в буквалната заявка, което се основава на информация, която той вече има. Ще има статистически данни, които може ефективно да запитва въз основа на разпространението на данните, дадени във вашия конкретен литерал.
Параметризираната заявка е избрала заявката, която смята, че е най-справедлива за всички данни във вашата таблица, което ще забележите, че е много вложени цикли (производителност =лоша).
Може би бихте могли да опитате да стартирате инструментите за оптимизиране на базата данни във вашата база данни, за да видите дали някои индекси могат да ви помогнат тук?
По-конкретно във вашата заявка, опитайте това:
declare @p0 int
set @p0 = 1000
select *
from foo
join bar on bar.x = foo.x
join baz on baz.y = foo.y
where foo.x = @p0
OPTION ( OPTIMIZE FOR (@p0 = 1000))
Но бих бил предпазлив да направя това, без да съм сигурен, че данните, съдържащи се в тази заявка, няма да се променят и че заявката ви в този план ВИНАГИ ще бъде по-ефективна.