SQLServer CASE-Ausdrücke - Kurzschlussbewertung?

Ich versuche eine Abfrage zu optimieren, die ungefähr so ​​funktioniert:

SELECT
   ...
   CASE WHEN (condition) THEN (expensive function call #1)
   ELSE (expensive function call #2) 
   END
...

Der Abfrageplan zeigt, dass selbst in Fällen, in denen 100% der Zeilen die WHEN-Klausel erfüllen, ein erheblicher Teil der Zeit für Aufrufe des Ergebnisses in der ELSE-Verzweigung aufgewendet wird.

Der einzige Weg, wie ich das verstehen kann, ist anzunehmen, dass SQLServer beide Ergebnisse auswertet und dann nur eines basierend auf der Auswertung der WHEN-Bedingung auswählt, aber ich kann keinen endgültigen Hinweis finden, ob die Ergebnisse eines FALLS vorliegen oder nicht Anweisung werden vor den Bedingungen ausgewertet. Kann mir bitte jemand einen Hinweis geben oder erklären?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage