Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
Необходимо хранить hex значения в БД, возможно придется потом джойнить по этим полям и добавлять в where. Какой типа данных лучше использовать varbinary или varchar и почему?
7 дек 11, 09:12    [11718749]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
HEX что значит, бинарные данные или число в 16-ричной системе??? Какой длины?
7 дек 11, 09:26    [11718793]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Hel975
Какой типа данных лучше использовать varbinary или varchar и почему?
varbinary используется для хранения массива байтов, varchar для хранения строки

Дальше вы сами смотрите, что у вас хранится.
7 дек 11, 09:35    [11718820]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
angel_zar,

Храниться будет число, например, такое 3035307B2831B380E0361091. В BOLе написано: Use binary data when storing hexadecimal values such as a security identification number (SID), a GUID (using the uniqueidentifier data type), or a complex number that can be stored using hexadecimal shorthand.
7 дек 11, 09:44    [11718876]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hel975
Храниться будет число, например, такое 3035307B2831B380E0361091.

declare @v1 varbinary(100), @v2 varchar(100)
set @v1=0x3035307B2831B380E0361091
set @v2='3035307B2831B380E0361091'
select len(@v1),len(@v2)

Вопросы есть еще ?
7 дек 11, 10:12    [11719053]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
Glory
Hel975
Храниться будет число, например, такое 3035307B2831B380E0361091.

declare @v1 varbinary(100), @v2 varchar(100)
set @v1=0x3035307B2831B380E0361091
set @v2='3035307B2831B380E0361091'
select len(@v1),len(@v2)

Вопросы есть еще ?


Спасибо. Тоже склонялась к varbinary
7 дек 11, 10:32    [11719198]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
А про производительности varbinary тоже выигрывает?
7 дек 11, 11:28    [11719576]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hel975
А про производительности varbinary тоже выигрывает?

А что такое "производительность varbinary" ?
7 дек 11, 11:30    [11719597]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
Если в таблице миллиард записей и делать выборку по varbinary полю, то будет работать с такой же скоростью, что и если бы было поле типа varchar?
7 дек 11, 11:47    [11719766]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hel975
Если в таблице миллиард записей и делать выборку по varbinary полю, то будет работать с такой же скоростью, что и если бы было поле типа varchar?

Ну умножьте миллиард на 12 байт и на 24 байта
И подумайте
- сколько места займет это поле на диске
- сколько времени понадобится для чтения этого объема с диска
- сколько памяти понадобится для размещения результатов
- сколько места в логе понадобится при изменении данных

Вы же сравниваете не просто varbinary и varchar
Вы сравниваете varbinary и varchar разного размера
7 дек 11, 11:52    [11719820]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Hel975
Member

Откуда: Москва
Сообщений: 1053
Ну, а места это займет в два раза больше.

А как подсчитать:
- сколько времени понадобится для чтения этого объема с диска
- сколько памяти понадобится для размещения результатов
- сколько места в логе понадобится при изменении данных

Не уверена, что тут просто линейная зависимость?
7 дек 11, 12:06    [11719972]     Ответить | Цитировать Сообщить модератору
 Re: varbinary vs varchar  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hel975
А как подсчитать:
- сколько времени понадобится для чтения этого объема с диска

12 миллиардов байт поделить на пропускную способность вашей дисковой системы
7 дек 11, 12:09    [11720016]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить