Может ли встроенная табличная UDF превзойти эквивалентную скалярную UDF в списке столбцов SELECT?

This question grew out of SQLServer: Почему следует избегать пользовательских функций с табличными значениями?, Я начал задавать вопросы в некоторых комментариях, и ответы на мои комментарии переместились за пределы темы.

Так что вам не нужно читать всю дискуссию: я никогда не слышал, чтобы в ней говорилось, что пользовательские функции (UDF) работают медленно или их следует избегать. Некоторые ссылки были опубликованы в вопросе, указанном выше, чтобы показать, что они работают медленно. Я все еще не понял и попросил привести пример. Был опубликован пример, и разница в производительности была огромной.

Я не могу быть единственным человеком, который не понимал, что может быть такая большая разница в производительности. Я чувствовал, что этот факт должен быть разделен на новый вопрос и ответ, чтобы улучшить его шансы быть найденным. Это и есть «вопрос». Пожалуйста, еще не закрывайте, так как я хотел бы дать ответчику время для публикации ответа.

Конечно, другие также должны публиковать ответы или примеры. Я особенно ценю все, что поможет мне понятьwhy разница в производительности такая огромная.

Отметим также, что я не говорю об использовании UDF в предложении WHERE. Мне известно, как это может помешать оптимизатору выполнять свою работу. Меня особенно интересуют различия в производительности, когда исходный UDF был частью списка столбцов SELECT.

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

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