ここで多くの回答を読んだ後、インライン テーブル値関数と他の種類の関数 (スカラーまたは複数行の TVF) の間には大きな違いがあることに注意したいと思います。
インライン TVF は、単なるパラメーター化されたビューです。ビューと同じように、拡張して最適化することができます。 「結果を返す」などの前に何かを具体化する必要はありません (ただし、残念ながら、構文には RETURN
があります) .
ビューに対するインライン TVF の大きな利点は、必要なパラメーター化を強制することですが、ビューでは、呼び出し元がビューの使用に適切に参加または制限することを想定する必要があります。
たとえば、DW には、典型的な Kimball スター モデルを使用した多くの大きなファクト テーブルがあります。私は、ファクト テーブルを中心としたモデルについての見解を持っています。このモデルは、何の制限もなく呼び出され、数億行を返します。適切なパラメーター化でインライン TVF を使用することにより、ユーザーは誤ってすべての行を要求することがなくなります。この 2 つのパフォーマンスはほとんど区別がつきません。