Шукаючи по Інтернету, я знайшов суперечливі поради щодо того, чи є вплив на ефективність при вказівці надто широких стовпців VARCHAR, наприклад VARCHAR (255), коли VARCHAR (30), ймовірно, зробить.
Я послідовно бачу, що існує показник ефективності, якщо весь рядок перевищує 8060 байт. Крім цього, я бачу незгоду.
Чи правда, що це твердження The default is SET ANSI PADDING ON = potential for lots of trailing spaces
? Поки загальна ширина рядків становить менше 8060, чи існують якісь реальні проблеми щодо продуктивності в розмірах стовпців VARCHAR?
Докази того, що ширина стовпця має значення
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
Які наслідки встановлення варчару (8000)?
Докази того, що ширина стовпця НЕ має значення
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
max
відnon max
). Саме протилежний напрямок має більш високі накладні витрати.