VARCHAR(MAX)/NVARCHAR(MAX)Sütunlar kullanıldığında verilerin sıra dışına kaydedildiğini biliyorum ...
Aslında, bu large value types out of rowseçenek kullanılarak ayarlanabilen seçeneğin ayarına bağlıdır sp_tableoption. Gönderen belgeler :

Varsayılan içindir MAXdeğerler saklanmasına içinde satır onlar uyarlarsa, 8000 bayt kadar. Eğer kullanmış sürece sp_tableoptionvarsayılan değiştirmek için, sizin MAXveri büyük olasılıkla içinde satır saklanacaktır.
Bununla birlikte, MAXasla 8000 baytı aşmayacak değerler için veri türlerini kullanmak zayıf bir uygulamadır - bunun yerine MAX olmayan bir tür kullanın. MAXSQL Server'ın 2GB'a kadar olabilecek verilerle başa çıkmaya hazır olması gerektiğinden, başka bir şey dışında, türlerle uğraşırken performans genellikle önemli ölçüde daha kötüdür .
Her alan satır dışında mı saklanıyor yoksa yalnızca maksimum alan mı?
Sadece MAXolanlar. Ayrıca, daha önce satır içi bir MAXsütun satır dışına taşınırsa, yalnızca bu satırdaki sütun etkilenir. Satır, satır dışı LOByapıya bir işaretçi ile değiştirilir . MAX olmayan sütunların satır dışına taşınabileceği durumlar da vardır.
Tablonun kümelenmiş dizinini tüm kaydı okumak için kullanıyorsanız, satır dışında depolanan alanlar da okunuyor mu?
Kümelenmiş dizinin taranması yalnızca satır içi verileri geçer. Sorgu için satır dışı veri gerekiyorsa, satır içi işaretçisi kullanılarak aranır.