Det verkar som att frågeplaneraren har fattat ett beslut i den bokstavliga frågan som är baserat på information som den redan har. Den skulle ha statistik som den kan söka effektivt baserat på spridningen av data som ges i din specifika bokstav.
Den parameteriserade frågan har valt den fråga som den anser är rättvisast för all data i din tabell, vilket du kommer att märka är många kapslade loopar (prestanda =dåligt).
Du kanske kan försöka köra databasoptimeringsverktygen på din databas för att se om några index kan hjälpa dig här?
Specifikt i din fråga, prova detta:
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))
Men jag skulle vara försiktig med att göra detta utan att vara säker på att informationen i den här frågan inte kommer att förändras och att din fråga om den här planen ALLTID kommer att vara mer effektiv.