AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2013, 10:15   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от twilight Посмотреть сообщение
а почему, собственно, в Аксапте используется строковой InventDimId?
Исторически все нумераторы (за очень редким исключением) буквенно-цифровые для того, чтобы:
1. можно было задавать суффиксы-префиксы (для разных целей)
2. можно было использовать более компактную нумерацию (не только цифры, но и буквенный алфавит)

http://axapta.mazzy.ru/lib/numbersequenceformat/

а также
http://axapta.mazzy.ru/lib/numbersequence/
За это сообщение автора поблагодарили: twilight (1).
Старый 04.10.2013, 10:36   #2  
twilight is offline
twilight
MCTS
MCBMSS
 
890 / 241 (10) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Цитата:
Сообщение от mazzy Посмотреть сообщение
Исторически все нумераторы (за очень редким исключением) буквенно-цифровые для того, чтобы:
1. можно было задавать суффиксы-префиксы (для разных целей)
2. можно было использовать более компактную нумерацию (не только цифры, но и буквенный алфавит)

http://axapta.mazzy.ru/lib/numbersequenceformat/

а также
http://axapta.mazzy.ru/lib/numbersequence/
1. Для каких целей можно использовать префиксы / суффиксы в InventDim? Я вижу только вариант, если передавать из одной базы в другую и при этом использовать старый inventDim, но это какой то очень редкий случай и никто не мешает в новой базе сгенерировать новый inventDim по комбинации аналитик.
2. Компактная нумерация это хорошо, если бы InventDimId печатался в документах или выводился на формах, а так с точки зрения БД компактнее как раз число.
__________________
I could tell you, but then I would have to bill you.
Старый 07.10.2013, 10:47   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от twilight Посмотреть сообщение
1. Для каких целей можно использовать префиксы / суффиксы в InventDim? Я вижу только вариант, если передавать из одной базы в другую и при этом использовать старый inventDim, но это какой то очень редкий случай и никто не мешает в новой базе сгенерировать новый inventDim по комбинации аналитик.
думайте дальше.
для того, чтобы отделить inventDim с ячейками и паллетами от обычных,
для того, чтобы отделить inventDim на разных юр.лицах, если юр.лица разделяют общий склад.
да, мало ли для чего?

Цитата:
Сообщение от twilight Посмотреть сообщение
2. Компактная нумерация это хорошо, если бы InventDimId печатался в документах или выводился на формах, а так с точки зрения БД компактнее как раз число.
Не знай... Наработался я с "компактной нумерацией" в Конкорде. Где для разных целей выделялись числовые диапазоны. Ну его нафих. Пусть лучше будет больше возможностей с префиксами и суффиксами. Пусть эти возможности будут даже за счет небольшой потери производительности.
Старый 07.10.2013, 14:27   #4  
twilight is offline
twilight
MCTS
MCBMSS
 
890 / 241 (10) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Цитата:
Сообщение от mazzy Посмотреть сообщение
для того, чтобы отделить inventDim с ячейками и паллетами от обычных,
А что это дает?

Цитата:
Сообщение от mazzy Посмотреть сообщение
для того, чтобы отделить inventDim на разных юр.лицах, если юр.лица разделяют общий склад.
А чем не нравится аналитика Владелец?

Цитата:
Сообщение от mazzy Посмотреть сообщение
да, мало ли для чего?
На проектах, которые я видел, InventDimId использовался только по прямому назначению и никак не модифицировался, потому и спрашиваю.
__________________
I could tell you, but then I would have to bill you.
Старый 08.10.2013, 17:39   #5  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Тут думаю уместно будет вспомнить, что в InventDim построен кластерный индекс по InventDimId.
В таком случае, использование всяких префиксов и суффиксов в ключевом поле удорожает процесс вставки данных, т.к. приводит к фрагментации, т.е. лучше бы этим не пользоваться, тем более что выгода не очевидна.
Излишняя длинна ключа кластерного индекса тоже не на пользу, кластерный индекс используется для поиска по некластерным и значения ключа будет дублироваться для всех некластерных индексов. Отсюда опять удорожание процесса вставки и модификации данных, излишняя трата дискового пространства.
Т.е. для вставки и обновления данных конечно выгодней было бы иметь InventDimId типа Int64.

С другой стороны вопрос насколько выгодней и какого эффекта мы хотим достичь. Потому как на чтение данных эти изменения повлияют в меньшей степени, да и будет ли вообще заметен эффект на объемах типа 4,5 млн записей ...
Старый 08.10.2013, 18:08   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от handy-comp Посмотреть сообщение
Т.е. для вставки и обновления данных конечно выгодней было бы иметь InventDimId типа Int64
Интенсивная вставка ? Обновления ? Мы все еще индекс на InventDim по InventDimId обсуждаем ? Напомню, основной способ доступа - singleton_lookup

Цитата:
Тут думаю уместно будет вспомнить, что в InventDim построен кластерный индекс по InventDimId.
В таком случае, использование всяких префиксов и суффиксов в ключевом поле удорожает процесс вставки данных, т.к. приводит к фрагментации
А можно "на пальцах" показать как префиксы в номерной серии приводят к усиленной фрагментации при вставке ? А то мне как-то казалось что при выделении в рамках одной сессии значение номерной серии монотонно возрастает, а в случае множественных сессий и неиспользования предварительного выделения номеров из серии фрагментация даже меньше чем при индексе по RecId и множественных инстансах AOS
__________________
-ТСЯ или -ТЬСЯ ?
Старый 08.10.2013, 18:15   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Vadik Посмотреть сообщение
Интенсивная вставка ? Обновления ? Мы все еще индекс на InventDim по InventDimId обсуждаем ? Напомню, основной способ доступа - singleton_lookup
Интересно, почему так получилось ? Неужели настолько часто дергается find(). Мне казалось что Invnetdim очень часто в джоинах бывает. Или они тоже могут приводить к такому способу доступа ?
Старый 08.10.2013, 19:36   #8  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Цитата:
Сообщение от Vadik Посмотреть сообщение
Интенсивная вставка ? Обновления ? Мы все еще индекс на InventDim по InventDimId обсуждаем ? Напомню, основной способ доступа - singleton_lookup
AOS
Ну да, я имел ввиду что замена ключа на int64 и если он кластерный, в большей степени повлияет на процессы вставки и обновления, в любой таблице.

Цитата:
Сообщение от Vadik Посмотреть сообщение
А можно "на пальцах" показать как префиксы в номерной серии приводят к усиленной фрагментации при вставке ? А то мне как-то казалось что при выделении в рамках одной сессии значение номерной серии монотонно возрастает, а в случае множественных сессий и неиспользования предварительного выделения номеров из серии фрагментация даже меньше чем при индексе по RecId и множественных инстансах AOS
Вот тут хорошо описано про кластерные индексы http://www.somewheresomehow.ru/clust...key-selection/
На пальцах, записи физически отсортированы по кластерному индексу, если мы вставляем запись то с одним префиксом ключа то с другим (как здесь предлагалось для визуального разделения) системе приходится резервировать пустые места для вставки данных в разные места таблицы.
Теги
ax2012, inventdim, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
InventDim::findOrCreate ice DAX: Программирование 24 23.12.2010 10:43
Вопросы по ReleaseUpdate DAX 2009 ansoft DAX: Программирование 7 31.08.2010 12:21
lookup для ItemId iz InventTable + InventDim + InventSum stalker25 DAX: Программирование 6 20.07.2009 15:50
InventDim.findOrCreateBlank - простое сложно? Pavlo AKA Panok DAX: Программирование 5 25.10.2004 16:50
Работа с InventDim... NJD DAX: Программирование 11 17.06.2004 14:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:13.