Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

что лучше юзать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
3-1077171427
Василий
2004-02-19 09:17
2004.03.28
DBase и прерывания


4-1073984926
Андрю-ХА
2004-01-13 12:08
2004.03.28
Контекстное меню


14-1078234981
Lena19
2004-03-02 16:43
2004.03.28
LG7020 +ASUS a620 = GPRS ??????


14-1078217556
Goida
2004-03-02 11:52
2004.03.28
Плохой Visual Studio :((


14-1078401098
alless
2004-03-04 14:51
2004.03.28
xaker.ru Закрылся?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский