Влияет ли длина varchar на производительность - PullRequest
0 голосов
/ 20 октября 2019

Мы обсудили с нашими специалистами по разработке использование столбцов VARCHAR, поскольку они определяют каждое поле varchar как varchar (255), varchar (500), ... и намного больше, чем максимальная длина поля, делает длину varcharиметь какое-либо влияние на производительность в db2? Мы обнаружили, что рекомендуется использовать char вместо varchar для столбца размером 30 байт или меньше, и мы обеспокоены тем, что поля varchar имеют размер больше 30 байт.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Это может привести к снижению производительности при использовании таблиц ORGANIZE BY COLUMN. Существует общая заявленная ширина, которая может быть обработана в Механизме данных столбцов. Если этот предел нарушается в плане запроса, остальная часть запроса будет обработана в Механизме данных строк.

0 голосов
/ 20 октября 2019

Допустимая чрезмерная длина столбца не очень хорошая идея. Если вы позволите, скажем, столбцу FirstName иметь максимальную длину 500, вы можете в конечном итоге найти довольно длинную не относящуюся к делу историю, потому что почему бы и нет, если это разрешено :)

Что касается влияния на производительность.
Единственная проблема может быть здесь, если Расширенный размер строки включен для базы данных (в противном случае вы просто не можете создать слишком «широкую» таблицу), а общая длина строки превышает страницу табличного пространстваразмер. Некоторое значение столбца varchar выводится со страницы данных, и для доступа к такой строке в будущем потребуется больше ввода-вывода. Вы должны иметь в виду такое поведение. И вероятность таких событий выше в случае неконтролируемой длины столбцов varchar.

...