Pesquisando na web, encontrei conselhos conflitantes sobre se há um impacto no desempenho ao especificar colunas VARCHAR excessivamente amplas, por exemplo, VARCHAR (255) quando VARCHAR (30) provavelmente ocorrerá.
Consigo consistentemente concordar que há um impacto no desempenho se a linha inteira exceder 8060 bytes. Fora isso, eu vejo desacordo.
A afirmação é verdadeira The default is SET ANSI PADDING ON = potential for lots of trailing spaces
? Contanto que a largura total da linha seja menor que 8060, existem problemas reais de desempenho nas colunas VARCHAR com tamanho excessivo?
Evidência de que a largura da coluna é importante
The same goes for CHAR and VARCHAR data types. Don’t specify more characters in character columns that you need.
http://www.sql-server-performance.com/2007/datatypes/
Length is a constraint on the data (like CHECK, FK, NULL etc)
Performance when the row exceeds 8060 bytes
Can not have unique constraint or index (key column width must be < 900)
The default is SET ANSI PADDING ON = potential for lots of trailing spaces
Quais são as conseqüências da configuração do varchar (8000)?
Evidência de que a largura da coluna NÃO importa
If you're talking about varchar and nvarchar then no, there is no penalty for allowing a higher field length.
/programming/7025996/overstating-field-size-in-database-design
The varchar datatype, by contrast, consumes only the amount of
actual space used plus 2 bytes for overhead
http://sqlfool.com/content/PerformanceConsiderationsOfDataTypes.pdf
fonte
max
denon max
). É a direção oposta que tem a maior sobrecarga.