Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше работать с GUID / 6 сообщений из 6, страница 1 из 1
15.05.2003, 08:56
    #32160155
zDIV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше работать с GUID
Привет!
Подскажите, пожалуйста, как в IB лучше работать с GUID, жаль что нет специального типа поля, как, например, в MS SQL 2000. Это поле должно хорошо индексироваться. Правда, я не знаком с IB 7, может быть, там уже это реализовано? Первый вариант - хранить его в четырех полях INTEGER, второй - в символьной строке.
У кого есть таковой опыт, знатоки, откликнитесь. Заранее признателен всем ответившим.
...
Рейтинг: 0 / 0
15.05.2003, 10:06
    #32160222
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше работать с GUID
http://www.ibase.ru/devinfo/test2.htm
http://www.ibase.ru/devinfo/octets.htm
GUID UDF здесь
http://www.ibase.ru/d_udf.htm
...
Рейтинг: 0 / 0
16.05.2003, 15:15
    #32161875
zDIV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше работать с GUID
В статье, почему-то, делается упор на поле CHAR.
Может быть, лучше использовать пару полей INT64, а не CHAR, в смысле индекс по двум INT64 будет лучше работать при выборке

...WHERE INT641 = :INT641 AND INT642 = :INT64...

чем

...WHERE CHAR1 = :CHAR1...

?
...
Рейтинг: 0 / 0
16.05.2003, 16:36
    #32162018
Как лучше работать с GUID
Привет!

Выборка быстрее будет работать по одному полю.
Также - составной индекс по 2 полям медленнее одинарного по одному.

WBR,
Alexey
...
Рейтинг: 0 / 0
19.05.2003, 09:20
    #32162639
zDIV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше работать с GUID
Да, но строка есть строка и индекс по строковому полю, по-моему, хранится несколько иначе ("обременительнее" для ресурсов сервера как по размеру, так и по времени, см. ссылки в первом ответе "ibase"), нежели по целочисленным полям... Кстати, почему-то в моем IB не принимается тип INT64?
...
Рейтинг: 0 / 0
19.05.2003, 11:49
    #32162811
Как лучше работать с GUID
Привет!

доку, доку смотрим.
INT64 - это механизм хранения, а не тип, он вклюачется при использовании типа данных вроде NUMERIC(18,0)
Вроде есть алиасы типа BIGINT для него.

Насчет того, что строка накладнее или число - оверхеда там фактически нет.

Если не веришь, то это можно легко проверить -
берешь UDF для генерации GUID, генеришь табличку на миллион записей с ним, затем тоже самое с INT64 и вперед - тестируй выборку по индексам (для фетча записей разница появится только если строки будут гораздо больше чем 8 байт, так как упаковка что целых, что символьных данных работает одинаково).

WBR,
Alexey
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше работать с GUID / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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