SQLServer CASE выражений - оценка короткого замыкания?

Я пытаюсь оптимизировать запрос, который делает что-то вроде этого:

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

План запроса показывает, что даже в тех случаях, когда 100% строк удовлетворяют предложению WHEN, значительная часть времени затрачивается на вызовы результата в ветви ELSE.

Единственный способ понять это - предположить, что SQLServer оценивает оба результата, а затем выбирает только один на основе оценки условия WHEN, но я могу:не может найти какой-либо окончательной ссылки на то, оцениваются ли результаты оператора CASE до выполнения условий. Кто-нибудь может уточнить или указать мне ссылку?

Ответы на вопрос(2)

Ваш ответ на вопрос