powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2LUW char vs varchar
5 сообщений из 5, страница 1 из 1
DB2LUW char vs varchar
    #36257573
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа,
подскажите в чём разница между char и varchar.
В теории понятно, что char добивает пробелами значение до указанной длинны, а varchar занимает столько места сколько значение + 2 бита на хранение длины.

Когда происходит insert, что быстрее char или varchar?
Когда просто читаем, есть ли разница если индекс на char или varchar?
Какие критерии выбора?


Если есть хорошие ссылки, буду заранее за них благодарен, а то ничего не получается найти.

Заранее большое спасибо
...
Рейтинг: 0 / 0
DB2LUW char vs varchar
    #36257610
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Varchar применяют когда длины в column сильно различается (так ФИО работников).
Varchar позволяет экономить размер таблицы (table size).

Если длина column постоянна, или редко меняется (так ID работника) применяют вместо Varchar Char(n) .

В настоящее время Varchar может быть частью индекса....

http://publib.boulder.ibm.com/cgi-bin/bookmgr/SEARCH?Book=dsnsqk16&searchRequest=varchar&SEARCH=Search&Type=FUZZY&SHELF=&DT=20090505112816&searchTopic=TOPIC&searchText=TEXT&searchIndex=INDEX&rank=RANK

Lenny K.
...
Рейтинг: 0 / 0
DB2LUW char vs varchar
    #36257612
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
All about Varchar:

http://publib.boulder.ibm.com/cgi-bin/bookmgr/SEARCH?Book=dsnsqk16&searchRequest=varchar&SEARCH=Search&Type=FUZZY&SHELF=&DT=20090505112816&searchTopic=TOPIC&searchText=TEXT&searchIndex=INDEX&rank=RANK

Lenny
...
Рейтинг: 0 / 0
DB2LUW char vs varchar
    #36258130
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо.
К сожалению, не удалось пока найти ответы, т.к. ссылок очень много и они уводят куда-то в сторону.

Я параллельно исследовал тот же вопрос для Sybase и там мне повезло больше - удалось найти несколько интересных статей - вот здесь мой постинг.

В Sybase char ведёт себя как char только в случае если поле не допускает NULL. В противном случае происходит скрытый перевод в varchar.
Даётся понять, что varchar более медленные, но не указывается почему.

Ведёт ли DB2 LUW себя подобным образом в отношении char? Есть ли разница в производительности для этих 2х типов? Чем вызвана?

Пока, я вижу только разницу в том, что char не может быть больше 255 символов, в то время как varchar формально разрешает 32 672, но при этом, после 4000 символов возникают некоторые ограничения ( вот здесь написано )

Т.е. если поле может потребовать больше 255 символов, то char мы уже использовать не сможем,
но как выбрать правильный тип для полей в пределах 255 символов?

Если скажем, размер значения может гулять в пределах 10-20 символов в поле длинной 128 символов, то что будет лучше char или varchar?


Заранее спасибо
...
Рейтинг: 0 / 0
DB2LUW char vs varchar
    #36259022
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kru,

- char обрабатывается эффективнее varchar (трудно сказать, насколько)
- char(n) занимает больше места на диске и в памяти, чем varchar(n), но это если фактическая длина значения поля меньше, чем n-4 (для varchar дополнительно используется 4 байта для служебных нужд)
- при обновлении varchar, если в поле пишется более длинное значение, чем изначально было вставлено, может возникнуть переполнение записи, т.е. ситуация, когда запись физически переносится в другое место, а со старого места в новое ставится указатель. Соответственно, доступ к таким записям замедляется, и может понадобиться реорганизация таблицы для устранения этой ситуации.

В вашем случае, если в среднем используется по 10-20 символов из 128, то вы можете сильно потерять в производительности из-за лишнего места для char.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2LUW char vs varchar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]