Ich denke, die Lösung kann Ihnen theoretisch helfen, die Leistung zu steigern, aber es hängt auch davon ab, was die Skalarfunktion tatsächlich tut. Ich denke, das wäre in diesem Fall (meine Vermutung ist, das Datum auf den letzten Tag im Quartal zu formatieren) wirklich vernachlässigbar.
Vielleicht möchten Sie diese Seite mit vorgeschlagenen Problemumgehungen lesen:
Und in Problemumgehungen gibt es einen Kommentar, dass
Es scheint also, dass dies die Leistung steigern kann.
Ihre Lösung ist korrekt, aber ich würde empfehlen, eine Verbesserung der SQL in Betracht zu ziehen, um stattdessen ELSE zu verwenden, sie sieht für mich sauberer aus:
AND ReportTypeID = CASE WHEN (@X = 1) THEN 1
ELSE 4
END;