Има разлика между VARCHAR(1-8000) и VARCHAR(MAX).
Когато в дадена колона се записват данни от тип VARCHAR(1-8000) те се записват физически точно по този начин в съответния ред. Но когато колоната съдържа данни от тип VARCHAR(MAX) задкулистно данните се записват като данни от тип TEXT. Ето защо има допълнитна работа когато използваме VARCHAR(MAX) и такъв тип колна трябва да се използва само когато знаем, че данните ще превишат 8000.
VARCHAR(MAX) и NVARCHAR(MAX) не държат данните си в самия ред, а на друго място. В реда има единствено указател към това място. Дефоутно сървърът ще опита да задържи данните в реда, но ако става въпрос за голямо количество ще ги постави на друго място. Това поставяне на данни на място различно от текущия ред ще доведе до допълнителна работа на сървъра и съответно до леко забавяне. Още по темата:
http://msdn2.microsoft.com/en-us/library/ms189087.aspx