AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.01.2023, 11:08   #1  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Logger Посмотреть сообщение
А еще по ним индексы неэффективно работают.
Фрагментация, то, сё...
Вообще в SQL Server есть функция, которая возрастающие GUID генерирует. (NewSequentialId()), по которым проблемы фрагментации индекса не возникает. Тут правда вопрос - как разработчики GUIDы в своей логике генерируют...
Плюс - мне кажется что сейчас почти все индексы сжимаются, при этом с учетом того что они пишут что у них таблица в режиме append only, особо большого оверхида при обновлениях не будет, а при чтении за счет сжатия выигрыш будет существенным.
За это сообщение автора поблагодарили: ena_ax (1), Logger (5).
Старый 18.01.2023, 13:27   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
Вообще в SQL Server есть функция, которая возрастающие GUID генерирует. (NewSequentialId()), по которым проблемы фрагментации индекса не возникает.
Это да.
Но если их инкрементно выделять, то пропадают все вкусности GUID и он становится ничем не лучше обычного RecId. Даже хуже, так как RecId всего 8 байт занимает.
Старый 18.01.2023, 14:11   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Logger Посмотреть сообщение
Это да.
Но если их инкрементно выделять, то пропадают все вкусности GUID и он становится ничем не лучше обычного RecId. Даже хуже, так как RecId всего 8 байт занимает.
GUID проще выделить до записи в БД. То есть - в принципе UnitOfWork или махинации с suspendRecId() решают проблему, но MkGuid() все равно проще написать.
Старый 01.03.2023, 11:28   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
GUID проще выделить до записи в БД. То есть - в принципе UnitOfWork или махинации с suspendRecId() решают проблему, но MkGuid() все равно проще написать.
Проще конечно, но если хочется упрощения то можно также еще задействовать готовый
\Data Dictionary\Tables\EventInbox\Methods\nextEventId

или свой системный счетчик 64-битных идентификаторов сделать один раз по аналогии. И вести его в разрезе TableId.
За это сообщение автора поблагодарили: fed (5).
Старый 12.09.2023, 14:32   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Logger Посмотреть сообщение
Это да.
Но если их инкрементно выделять, то пропадают все вкусности GUID и он становится ничем не лучше обычного RecId. Даже хуже, так как RecId всего 8 байт занимает.
Оказывается подготовлен стандарт UUIDv7, свободный от перечисленных мной недостатков.

https://habr.com/ru/articles/658855/

Комменты, как обычно, еще интереснее.
За это сообщение автора поблагодарили: S.Kuskov (2).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:44.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.