VARCHAR(MAX)/NVARCHAR(MAX)列が使用される場合、データは行外に格納されることを知っています...
実際には、を使用して設定large value types out of rowできるオプションの設定によって異なりますsp_tableoption。ドキュメントから:

デフォルトでは、のためにあるMAXの値を保存するには、行、彼らが収まる場合は、8000のバイトまで、。sp_tableoptionデフォルトの変更に使用していない限り、MAXデータはおそらく行内に格納されます。
とはいえ、MAX8000バイトを超えない値のデータ型を使用することはお勧めできません。代わりに非MAX型を使用してください。MAXSQL Serverは最大2GBのサイズのデータを処理できるように準備する必要があるため、他のものとは別に、型を処理するときのパフォーマンスはしばしば著しく低下します。
各フィールドは行外に格納されていますか、それとも最大のものだけですか?
MAXものだけ。さらに、以前に行内にあったMAX列が行外に移動された場合、その行のその列のみが影響を受けます。それは、行外のLOB構造へのポインターによって行内で置き換えられます。MAX以外の列が行外に移動される場合もあります。
レコード全体を読み取るためにテーブルのクラスター化インデックスを使用している場合、行から格納されているフィールドも読み取られますか?
クラスタ化インデックスのスキャンは、行内データのみを走査します。クエリに行外データが必要な場合は、行内ポインタを使用して検索されます。