Я знаю, что производная таблица и общее табличное выражение (CTE) не сохраняются. Они живут в памяти до конца внешнего запроса. Каждый вызов является повторным исполнением.Сохраняются ли функции SQL Server, такие как встроенные функции табличных значений?
Сохраняются ли функции, такие как встроенные функции табличного значения, что означает, что они вычисляются только один раз? Можем ли мы проиндексировать встроенную функцию с таблицей?
Я имел в виду кеш и постоянство для эффективного повторного использования. Тогда какой улов встроенных табличных функций над CTE или view, за исключением того факта, что для CTE нам нужно повторять код каждый раз, а для функций нам не нужно? Я вижу, что представления и функции хранятся как объекты, поэтому хранятся только их определения кода, а не данные? – Kenny
@Kenny Я предполагаю, что внутренне они, вероятно, легче оптимизировать, чем представления, потому что у вас есть параметры, а не соединения из запроса в представление, что может привести к несоответствию типов данных и т. Д. Даже Microsoft говорит: «Встроенные функции могут использоваться для достижения функциональность параметризованных представлений ". в документации 2008 года: https://technet.microsoft.com/en-us/library/ms189294%28v=sql.105%29.aspx по сравнению с CTE, тогда функции предоставляют возможность повторного использования кода, CTE - просто для этого одного заявления. –