Вы не упоминаете, какой сервер sql вы используете
Если вы используете MySql, есть определенные преимущества в скорости использования полей фиксированной длины для сохранения таблицы в статическом режиме, однако, если у вас есть какие-либо поля переменной ширины, таблица переключится на динамический, и вы потеряете преимущество указания длины поля.
http://dev.mysql.com/doc/refman/5.0/en/static-format.html
http://dev.mysql.com/doc/refman/5.0/en/dynamic-format.html
Microsoft SQL Server имеет аналогичный прирост производительности при использовании столбцов фиксированной длины. При использовании столбцов фиксированной длины сервер точно знает, каковы смещение и длина данных в строке. В случае столбцов переменной длины сервер знает смещение, но должен хранить фактическую длину данных в виде предыдущего 2-байтового счетчика. Это имеет несколько последствий, которые обсуждаются в этой интересной статье , в которой обсуждается производительность как функция дискового пространства и преимущества столбцов переменной длины.
Если вы используете SQL Server 2005 или новее, вы можете воспользоваться varchar (max). Этот тип столбца имеет те же 2 ГБ хранилища больших двоичных объектов, но данные хранятся в виде фрагментов 8 КБ со страницами данных таблицы, а не в отдельном хранилище. Таким образом, вы получаете преимущество большого размера: используйте только 8 КБ на своих страницах одновременно, быстрый доступ к базе данных и те же семантики запросов, которые работают с другими типами столбцов, работают с varchar (max).
В конце концов, указание максимальной длины для столбца переменной в основном позволяет вам ограничить размер базы данных. Как только вы используете столбцы переменной длины, вы теряете преимущество строк фиксированного размера, и varchar (max) будет работать так же, как varchar (10), при хранении того же объема данных.