Jeg tror, at løsningen i teorien kan hjælpe dig med at øge ydeevnen, men det afhænger også af, hvad skalarfunktionen rent faktisk gør. Jeg tror, at i dette tilfælde (mit gæt er at formatere datoen til sidste dag i kvartalet) ville det være ubetydeligt.
Du vil måske læse denne side med foreslåede løsninger:
Og i Workarounds er der en kommentar om, at
Så det ser ud til, at ja, dette kan øge ydeevnen.
Din løsning er korrekt, men jeg vil anbefale, at du overvejer en forbedring af SQL'en for at bruge ELSE i stedet, det ser renere ud for mig:
AND ReportTypeID = CASE WHEN (@X = 1) THEN 1
ELSE 4
END;