powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше работать с GUID
6 сообщений из 6, страница 1 из 1
Как лучше работать с GUID
    #32160155
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Подскажите, пожалуйста, как в IB лучше работать с GUID, жаль что нет специального типа поля, как, например, в MS SQL 2000. Это поле должно хорошо индексироваться. Правда, я не знаком с IB 7, может быть, там уже это реализовано? Первый вариант - хранить его в четырех полях INTEGER, второй - в символьной строке.
У кого есть таковой опыт, знатоки, откликнитесь. Заранее признателен всем ответившим.
...
Рейтинг: 0 / 0
Как лучше работать с GUID
    #32160222
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как лучше работать с GUID
    #32161875
zDIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В статье, почему-то, делается упор на поле CHAR.
Может быть, лучше использовать пару полей INT64, а не CHAR, в смысле индекс по двум INT64 будет лучше работать при выборке

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

чем

...WHERE CHAR1 = :CHAR1...

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

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

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

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

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

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

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


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