Det ser ud til, at forespørgselsplanlæggeren har truffet en beslutning i den bogstavelige forespørgsel, som er baseret på oplysninger, som den allerede har. Det ville have statistikker, som det kan forespørge effektivt på baseret på spredningen af data givet i dit specifikke bogstav.
Den parametriserede forespørgsel har valgt den forespørgsel, som den mener er mest retfærdig for alle data i din tabel, som du vil bemærke er mange indlejrede loops (ydeevne =dårlig).
Måske du kan prøve at køre databaseoptimeringsværktøjerne på din database for at se, om nogle indekser kan hjælpe dig her?
Specifikt i din forespørgsel, prøv dette:
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 jeg vil være forsigtig med at gøre dette uden at være sikker på, at dataene i denne forespørgsel ikke vil ændre sig, og at din forespørgsel på denne plan ALTID vil være mere effektiv.