Se hai la garanzia di avere stringhe comprese tra 1 e 50 caratteri, la stessa query eseguita su stringhe di X fino alla lunghezza verrà eseguita più velocemente utilizzando varchar(X) vs. varchar(MAX). Inoltre, non puoi creare un indice su un campo varchar(MAX).
Una volta che le righe hanno valori superiori a 8000 caratteri, ci sono ulteriori considerazioni sulle prestazioni con cui fare i conti (le righe sono fondamentalmente trattate come TEXT anziché varchar(n)). Anche se questo non è molto rilevante come confronto poiché non esiste un'opzione varchar(N) per stringhe di lunghezza superiore a 8000.