Samma fråga ställdes på MSDN-forum:
- Varchar(max) vs Varchar(255)
Från det ursprungliga inlägget (mycket mer information där):
När du lagrar data i en VARCHAR(N)-kolumn, lagras värdena fysiskt på samma sätt. Men när du lagrar den i en VARCHAR(MAX) kolumn, bakom skärmen hanteras data som ett TEXT-värde. Så det krävs ytterligare bearbetning när man hanterar ett VARCHAR(MAX)-värde. (endast om storleken överstiger 8000)
VARCHAR(MAX) eller NVARCHAR(MAX) anses vara en "stort värdetyp". Stora värdetyper lagras vanligtvis "utanför rad". Det betyder att dataraden kommer att ha en pekare till en annan plats där det "stora värdet" är lagrat...