インラインテーブル値関数(TVF)はマクロのようなもので、外部クエリに展開されます。そのような計画はありません。呼び出し元のSQLには計画があります。
マルチステートメントTVFには計画があります(参照が見つかります)。
TVFは、パラメーター化された入力のSELECTリストを変更する場合に役立ちます。インラインTVFが拡張され、オプティマイザーによって外側の選択/場所が考慮されます。マルチステートメントTVFの場合、完全に実行する必要があるため、最適化は実際には不可能です。その後 フィルタ。
個人的には、マルチステートメントTVFでストアドプロシージャを使用します。それらはより柔軟性があります(たとえば、ヒント、状態を変更できる、SET NOCOUNT ON、SET XACTABORTなど)。
インラインTVFには異論はありませんが、SETを使用して状態を変更できないため、クライアント向けのコードに使用する傾向はありません。