Al buscar en la web, he encontrado consejos contradictorios sobre si hay un impacto en el rendimiento al especificar columnas VARCHAR demasiado anchas, por ejemplo, VARCHAR (255) cuando VARCHAR (30) probablemente lo hará.
Constantemente veo acuerdo en que hay un impacto en el rendimiento si toda la fila supera los 8060 bytes. Aparte de eso, veo desacuerdo.
¿Es cierto el reclamo The default is SET ANSI PADDING ON = potential for lots of trailing spaces
? Siempre que el ancho total de la fila sea inferior a 8060, ¿existen problemas de rendimiento real en el sobredimensionamiento de las columnas VARCHAR?
Evidencia de que el ancho de columna importa
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
¿Cuáles son las consecuencias de configurar varchar (8000)?
Evidencia de que el ancho de columna NO 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
fuente
max
desdenon max
). Es la dirección opuesta que tiene la sobrecarga más alta.