• I accept, there is no performance difference.

    Also, the 2 bytes VARCHAR is using to store length of string is consuming disk space but not affecting the performance.

    But still one doubt.

    If I define VARCHAR(8000) and store 10-20 characters in it, there should be some performance issue in long run (i.e. SQL Server will reserve the space for 8000 characters which is not utilized).