Przeszukując sieć, znalazłem sprzeczne porady na temat tego, czy ma wpływ na wydajność przy określaniu zbyt szerokich kolumn VARCHAR, np. VARCHAR (255), kiedy prawdopodobnie VARCHAR (30) to zrobi.
Konsekwentnie zgadzam się z opinią, że jeśli cały wiersz przekroczy 8060 bajtów, nastąpi spadek wydajności. Poza tym widzę spór.
Czy to twierdzenie jest prawdą The default is SET ANSI PADDING ON = potential for lots of trailing spaces
? Dopóki całkowita szerokość wiersza jest mniejsza niż 8060, czy istnieją jakieś rzeczywiste problemy z wydajnością w przypadku zbyt dużych rozmiarów kolumn VARCHAR?
Dowody, że szerokość kolumny ma znaczenie
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
Jakie są konsekwencje ustawienia varchar (8000)?
Dowód, że szerokość kolumny NIE MA znaczenia
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
źródło
max
znon max
). Jest to kierunek przeciwny, który ma wyższy narzut.