Текущий архив: 2004.03.28;
Скачать: CL | DM;
Вниз
что лучше юзать char или varchar? Найти похожие ветки
← →
b0bi (2004-01-23 13:26) [0]решаю, какой тип в поле Name у справочников юзать char или varchar........
есть мнение что varchar немного тормозит, из этих соображений предлагается юзать char (т.к. база предполагается нехилая, процессорные ресурсы нужно экономить, или лучше экономить память, незнаю)
что посоветуете вы?
← →
Johnmen © (2004-01-23 13:27) [1]varchar
← →
Desdechado © (2004-01-23 13:54) [2]чье мнение, чем обосновано?
← →
stone © (2004-01-23 13:58) [3]
> что посоветуете вы?
Внимательно почитать Data Types в BOL
← →
b0bi (2004-02-24 15:56) [4]>> Johnmen
>> Desdechado
т.е. вы утверждаете что varchar ни чуть не тормознее чем char? а если проверить?
← →
Johnmen © (2004-02-24 15:57) [5]>b0bi
Проверь...:)
← →
sniknik © (2004-02-24 16:02) [6]b0bi (24.02.04 15:56) [4]
а ты и проверь, кстати откуда видно что он это утверждает? вопрос что лутше, причем неконкретный (в этом случае неплохо бы анализ предполагаемых данных размер, однородность (по тому же размеру), наличие и частота незаполненных)
а так на основании того что "база предполагается нехилая" можно только личные предпочтения высказать.
← →
b0bi (2004-02-24 16:18) [7]спасибо за сотрудничество............. проверил занятость процессора, один фиг разницы никакой, буду варчар юзать :))
← →
Anatoly Podgoretsky © (2004-02-24 16:24) [8]b0bi (23.01.04 13:26)
Наоборот char больше будет тормозить, при том дважды - при формировании и при передаче.
← →
sniknik © (2004-02-24 16:35) [9]Anatoly Podgoretsky © (24.02.04 16:24) [8]
не всегда,
вот для примера из базы (изначально 1С-совская база) есть поле с данными
(несколько первых) 2JO, 2JP, 2JR, 2JS, ..... (это число сек. в 30ричной системе)
важно: всегда 3 символа, без пропусков (null не бывает никогда)
ясно что для этого поля char(3) гораздо предпочтительнее чем varchar(3).
конечно у него такого не будет (судя по названию "Name", там будут и пропуски и строки всегда меньше чем обьявленые).
← →
Anatoly Podgoretsky © (2004-02-24 16:42) [10]sniknik © (24.02.04 16:35) [9]
Первое возможно не всегда, зависит от сервера (как имено в данному не знаю, но в ИБ оба типа хранятся одинаково и дополнение пробюелами делается на этапе извлечения), но второе всегда, char подразумевает передачу с дополнением пробелами справа до длины поля, а var char так как есть поэтому различный объем при передаче, кроме конечно особых случаев.
← →
sniknik © (2004-02-24 17:00) [11]> char подразумевает передачу с дополнением пробелами справа до длины поля
именно это и имел в виду говоря что символов всегда 3, в этом случае это не действует.
насчет хранения, вроде бы access и mssql хранит по разному (в случае с var еще + 4байта на указатель) могу ошибатся (не помню где это читал, но счас сам попробую 2 варианта сохранить, посмотрю)
← →
Anatoly Podgoretsky © (2004-02-24 17:11) [12]У ИБ за исключением, когда длина поля 4, хранится ссылка и при том это одинаково для обеих типов и оба хранятся без концевых пробелов. При выборке char дополняется пробелами. Как у access и mssql не знаю, но тоже думаю что по крайней мере второй оптимизируют хранение.
← →
sniknik © (2004-02-24 17:16) [13]> но счас сам попробую 2 варианта сохранить, посмотрю
если не ставить "сжатие юникод" (в access) разница в размере баз есть, если поставить то размеры баз (с разными типами, и одинаковым количеством данных) одинаковы. вывод: тоже похоже одинаково хранит.
Страницы: 1 вся ветка
Текущий архив: 2004.03.28;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.023 c