powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder понимает GUID ?
11 сообщений из 11, страница 1 из 1
PowerBuilder понимает GUID ?
    #32452760
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MS SQL 2k + PB8.03
и стоит ли с GUID связываться?
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32452909
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напрямую использовать GUID не удастся, PB не понимает GUID при работе с native MS SQL. Через ODBC или OLE DB не пробовал. Можно конвертировать GUID в строку и работать с ним как со строковым полем (varchar(40)) - можно поиметь отличный Primary key.
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32452921
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerssможно поиметь отличный Primary key
Это в смысле хорошо или плохо ?

Именно в этом плане он меня и интересует. Работать вобираюсь через
OLEDB.
Может еще кто что скажет?
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32453292
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отличный PK должен быть как можно компактнее чего о GUID не скажешь.
Поскольку GUID напрямую не поддерживается - лучше его вообще не использовать.
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32453572
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32455169
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вовик
Это в смысле хорошо или плохо ?


Это хорошо, так как уникальность его гарантирована в очень широких пределах.

ЗоринАндрей
Отличный PK должен быть как можно компактнее чего о GUID не скажешь.
использовать

Отличный PK такой, за уникальность которого можно не беспокоиться, причем даже в рамках распределенной системы, БД которой расположены на разных серверах. И GUID обеспечивает уникальность PK даже и в этом случае. В нашей системе использовали другой способ формирования PK и поимели большой геморрой с синхронизацией 2 (только 2...) баз, которых, на самом деле, должно быть порядка 8-10. При этом сам GUID (честный, а не отконвертированный в строку), занимает в базе 16 байт - ИМХО нормально для PK.

Так что использование GUID в качестве PK имеет определенные плюсы, но я готов согласиться с тем, что

ЗоринАндрей
Поскольку GUID напрямую не поддерживается - лучше его вообще не использовать
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32455409
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerssЭто хорошо, так как уникальность его гарантирована в очень широких пределах
Меня вопросы производительности волнуют гораздо больше чем гарантии уникальности в широких пределах.
Распределенные базы это вообще отдельная история.
int занимает в четыре раза меньше места - это сильно влияет на скорость и объем.
Проблемы синхронизации GUID не решает полностью - два идентичных Мухосранска с разными GUID это аномалия. А конфликты реальных ключей все равно будут и их как-то в распределенной базе все равно приходится решать.
В итоге мы имеем ухудшение производительности в обмен на частичное решение проблем распределенной базы. Если у меня база локальная и я не собираюсь ее "размазывать" - использование GUID никакого выигрыша не дает - только минусы.
например кластерный индекс по GUID уже просто так не сделаешь - надо позаботиться о выборе филлфактора чтобы из-за случайного характера GUID уменьшить количество pagesplits - иначе добавление будет в разы медленнее чем в таблицу к integer identity.
А отказываться от кластерных индексов из каких-то глобальных соображений на мой взгляд глупо.
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32455727
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейВ итоге мы имеем ухудшение производительности в обмен на частичное решение проблем распределенной базы.
А какое это, позвольте спросить решение? В случае применения суррогатных ключей, что само по себе есть очень верно, все решается очень просто штатными средствами MS SQL. А в случае наличия unique constraints (а естейственный ключ - тот же unique constraint) проблемы при слиянии содержимого баз, как уже было замечено, это никаким образом не решает.

ЗоринАндрейнапример кластерный индекс по GUID уже просто так не сделаешь - надо позаботиться о выборе филлфактора чтобы из-за случайного характера GUID уменьшить количество pagesplits - иначе добавление будет в разы медленнее чем в таблицу к integer identity.
Ну и не только это. К примеру, в этом случае GUID будет частью всех индексов, что добавит +16 байт в каждую запись индекса.
Так что только проблем добавляет.
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32455733
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вовик, насчёт PB8.03 не знаю, но 9.01 через OLEDB нормально работает с ROWGUID columns (и по моему может их использоват как autoincrement)...
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32456188
Фотография Вовик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин МаркВ случае применения суррогатных ключей, что само по себе есть очень верно
Можно поподробнее , почему это верно?

2Филипп
Спасибо , не знал , буду иметь в виду!

Вообще я вижу , очень много спорят на форумах по этому поводу,
насчет использования первичных ключей в распределенных базах.
У меня проблема такая : сейчас организуется одна база. Затем предполагается
что они будут размножаться ( на филиалы , представительства и т.п. ).
Встанет задача слияния данных из разных баз для консолидации отчетов.
Вот я и в разждумьях. До сих пор использовал только int в качестве PK
с включенным identity.
Для моего случая , думаю подойдет создание специальной консолидированной
базы для отчетов , куда будут сливаться не первичные данные , а результаты
некоторых view или sp.
...
Рейтинг: 0 / 0
PowerBuilder понимает GUID ?
    #32456376
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВовикМожно поподробнее , почему это верно? http://www.akzhan.midi.ru/devcorner/articles/NaturalKeysVersusAtrificialKeysByTentser.html
ВовикУ меня проблема такая : сейчас организуется одна база. Затем предполагается
что они будут размножаться ( на филиалы , представительства и т.п. ).
Встанет задача слияния данных из разных баз для консолидации отчетов.
Вот я и в разждумьях. До сих пор использовал только int в качестве PK
с включенным identity.
Ну и используйте дальше. Прочитайте про not for replication, identity seed и identity increment.
ВовикДля моего случая , думаю подойдет создание специальной консолидированной
базы для отчетов , куда будут сливаться не первичные данные , а результаты
некоторых view или sp.
А вы это будете делать стандартными средствами MS SQL или что-то свое писать, а то я что-то плохо представляю, как вы будете сливать результаты view/sp c помощью стандартных возможностей.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / PowerBuilder понимает GUID ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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