To samo pytanie zostało zadane na forach MSDN:
- Varchar (maks.) kontra Varchar (255)
Z oryginalnego posta (znajduje się tam dużo więcej informacji):
Podczas przechowywania danych w kolumnie VARCHAR(N) wartości są fizycznie przechowywane w ten sam sposób. Ale kiedy przechowujesz je w kolumnie VARCHAR(MAX), za ekranem dane są traktowane jako wartość TEKSTOWA. Dlatego w przypadku wartości VARCHAR(MAX) potrzebne jest dodatkowe przetwarzanie. (tylko jeśli rozmiar przekracza 8000)
VARCHAR(MAX) lub NVARCHAR(MAX) jest uważany za „typ dużej wartości”. Duże typy wartości są zwykle przechowywane „poza wierszem”. Oznacza to, że wiersz danych będzie miał wskaźnik do innej lokalizacji, w której przechowywana jest „duża wartość”...