Na het lezen van veel van de antwoorden hier, wil ik opmerken dat er een groot verschil is tussen een inline tabelwaardefunctie en elk ander soort functie (scalar of multi-line TVF).
Een inline TVF is gewoon een geparametriseerde weergave. Het kan worden uitgebreid en geoptimaliseerd, net als een weergave. Het is niet vereist om iets te materialiseren voordat "resultaten worden geretourneerd" of iets dergelijks (hoewel de syntaxis helaas een RETURN
heeft .
Een groot voordeel dat ik heb gevonden van een inline TVF ten opzichte van een weergave, is dat het vereiste parametrisering afdwingt, terwijl je bij een weergave ervan moet uitgaan dat de beller op de juiste manier deelneemt aan het gebruik van de weergave of het gebruik ervan beperkt.
Zo hebben we in DW veel grote feitentabellen met een typisch Kimball stermodel. Ik heb een zicht op een fact table-centered model, dat zonder enige beperking wordt aangeroepen, honderden miljoenen rijen zal retourneren. Door een inline TVF met de juiste parametrering te gebruiken, kunnen gebruikers niet per ongeluk om alle rijen vragen. Prestaties zijn grotendeels niet te onderscheiden tussen de twee.