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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2017, 16:30   #1  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
67 / 21 (1) +++
Регистрация: 30.08.2007
Адрес: Bad Dürkheim
таблица unitOfMeasureConversionCache (AX 2012 R3)
подскажите пожалуйста, почему таблица unitOfMeasureConversionCache не временная?
Старый 12.06.2017, 09:15   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
1,970 / 868 (32) +++++++
Регистрация: 03.04.2002
Адрес: Australia
Цитата:
Сообщение от AnGor Посмотреть сообщение
подскажите пожалуйста, почему таблица unitOfMeasureConversionCache не временная?
По той же причине, по какой LedgerTransAccountTmp не временная.
__________________
Isn't it nice when things just work?
Старый 13.06.2017, 14:03   #3  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
558 / 33 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от macklakov Посмотреть сообщение
По той же причине, по какой LedgerTransAccountTmp не временная.
Это был вопрос-сарказм? Или нет?
Старый 13.06.2017, 18:51   #4  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
1,604 / 512 (21) +++++++
Регистрация: 10.10.2005
Адрес: PHP
Цитата:
Сообщение от AnGor Посмотреть сообщение
подскажите пожалуйста, почему таблица unitOfMeasureConversionCache не временная?
Некий долговременный кэш хранящийся в базе данных. Единый для всех AOS то есть на уровне приложения. Доступный и с клиента и с сервера. Сохраняющийся между рестартами.
Сбрасывает связанный к изменению кэш. В принципе практически оптимальное решение для подобного кэширования.

И это не вычисление в контексте процесса и аоса.
Старый 14.06.2017, 02:11   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
1,970 / 868 (32) +++++++
Регистрация: 03.04.2002
Адрес: Australia
Цитата:
Сообщение от user_ax Посмотреть сообщение
Это был вопрос-сарказм? Или нет?
Он самый. Некоторые места в коде overengineered настолько, что смысл происходящего начинает ускользать. И наименования объектов лишь добавляют мистики.
Цитата:
Сообщение от ax_mct Посмотреть сообщение
В принципе практически оптимальное решение для подобного кэширования.
А что там такого тяжелого происходит, чтобы кэширование в постоянную таблицу себя оправдывало?
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 14.06.2017 в 02:24.
Старый 14.06.2017, 11:24   #6  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
4,308 / 2002 (75) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от macklakov Посмотреть сообщение
Он самый. Некоторые места в коде overengineered настолько, что смысл происходящего начинает ускользать. И наименования объектов лишь добавляют мистики.

А что там такого тяжелого происходит, чтобы кэширование в постоянную таблицу себя оправдывало?
Вопрос не в том, насколько тяжелый расчет, а в том, как часто он выполняется.
В случае настройки юнит конвершна через базовый юнит вообще несколько раз приходится лукапить.

А так в кэше уже есть четкий фактор преобразования, бери и пользуйся.

А пересчитывать его имеет смысл только если кто-то меняет сам конвершн. Оттого и постоянная таблица.
За это сообщение автора поблагодарили: Vadik (1), ax_mct (3).
Старый 19.06.2017, 14:21   #7  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
67 / 21 (1) +++
Регистрация: 30.08.2007
Адрес: Bad Dürkheim
я почему спросил: в таблице UnitOfMeasureConversion в методах insert, update, delete
происходит чистка кэша:
UnitOfMeasureConversionCache::flushOnConversionChanged(this.FromUnitOfMeasure, this.ToUnitOfMeasure, this.Product);
по моим наблюдениям она всегда пуста (я о UnitOfMeasureConversionCache).
у нас есть надстройка для портовой логистики, этот функционал очень часто дергает UnitOfMeasureConversion. из за этого происходят deadlock на delete UnitOfMeasureConversionCache.
я пока убрал эту чистку и таблица UnitOfMeasureConversionCache начала расти, но не сильно, в унисон с UnitOfMeasureConversion. и кстати конвершн стал быстрее.
но что я еще заметил - расчет происходит быстрее поиска готового кэша.
теперь я не ищу расчет в кэше, а делаю его каждый раз:
в партнерском классе, наследнике от UnitOfMeasureConverter_Product сделал override findConversion(), таблицу UnitOfMeasureConversionCache я стал использовать как временную.
пока полет нормальный.

Последний раз редактировалось AnGor; 19.06.2017 в 14:25.
За это сообщение автора поблагодарили: macklakov (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: Dynamics AX 2012 R3 cumulative updates Blog bot DAX Blogs 0 15.03.2017 18:11
emeadaxsupport: [AX 2012 R3] Why is my Kernel build version not changing after installing CU-8 or the latest binary hotfix? Blog bot DAX Blogs 0 31.12.2014 20:20
Dynamics AX Sustained Engineering: Microsoft Dynamics AX 2012 R3 RTM Warehouse Management: How to prevent the creation of two inventDim records considered identical in Dynamics AX 2012 R3 RTM Blog bot DAX Blogs 0 22.12.2014 19:12
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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