Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.038 c
7-1073845084
MagaSoft
2004-01-11 21:18
2004.03.28
Работа с прокси!


1-1078822648
zamkom
2004-03-09 11:57
2004.03.28
Окончание работы внешней программы.


14-1077941184
Oyster
2004-02-28 07:06
2004.03.28
Декомпилятор


11-1057773390
BelchonokH
2003-07-09 21:56
2004.03.28
TabControl.CurIndex


8-1068984660
Yagoda
2003-11-16 15:11
2004.03.28
Как избавится от мигания PaintBox-а ?