Zwrócenie zmiennej tabeli sprawi, że będzie ona funkcją o wartości tabeli zawierającej wiele instrukcji i może mieć negatywny wpływ na wydajność ze względu na fakt, że jest traktowany jak tabela, z wyjątkiem tego, że SQL Server nie ma dostępnych statystyk, na których można by oprzeć dobry plan wykonania — więc oszacuje funkcję jako zwracającą bardzo małą liczbę wierszy. Jeśli zwróci większą liczbę wierszy, wygenerowany plan może być znacznie mniej niż optymalny.
Natomiast zwrócenie tylko SELECT sprawia, że jest to funkcja o wartości w tabeli śródliniowej - myśl o tym bardziej jako o widoku. W takim przypadku rzeczywiste tabele bazowe są wprowadzane do głównego zapytania i na podstawie odpowiednich statystyk można wygenerować lepszy plan wykonania. Zauważysz, że w tym przypadku plan wykonania w ogóle NIE będzie zawierał wzmianki o funkcji, ponieważ jest to po prostu połączenie funkcji z głównym zapytaniem.
Jest na ten temat świetne odniesienie na MSDN przez inżynierów CSS SQL Server, w tym (cytat):