Выполняя поиск в Интернете, я нашел противоречивый совет о том, влияет ли это на производительность при указании слишком широких столбцов 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
Каковы последствия установки varchar (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
). Это противоположное направление, которое имеет более высокие накладные расходы.