Si vous avez la garantie d'avoir des chaînes entre 1 et 50 caractères, la même requête exécutée sur des chaînes d'une longueur allant jusqu'à X s'exécutera plus rapidement en utilisant varchar(X) par rapport à varchar(MAX). De plus, vous ne pouvez pas créer d'index sur un champ varchar(MAX).
Une fois que vos lignes ont des valeurs supérieures à 8000 caractères, il y a des considérations de performances supplémentaires à prendre en compte (les lignes sont essentiellement traitées comme TEXT au lieu de varchar(n)). Bien que ce ne soit pas très pertinent comme comparaison puisqu'il n'y a pas d'option varchar(N) pour les chaînes de longueur supérieure à 8000.