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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.06.2017, 16:30   #1  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
97 / 46 (2) +++
Регистрация: 30.08.2007
Адрес: Ulm
Записей в блоге: 6
таблица unitOfMeasureConversionCache (AX 2012 R3)
подскажите пожалуйста, почему таблица unitOfMeasureConversionCache не временная?
Старый 12.06.2017, 09:15   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,251 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от 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
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от macklakov Посмотреть сообщение
По той же причине, по какой LedgerTransAccountTmp не временная.
Это был вопрос-сарказм? Или нет?
Старый 13.06.2017, 18:51   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от AnGor Посмотреть сообщение
подскажите пожалуйста, почему таблица unitOfMeasureConversionCache не временная?
Некий долговременный кэш хранящийся в базе данных. Единый для всех AOS то есть на уровне приложения. Доступный и с клиента и с сервера. Сохраняющийся между рестартами.
Сбрасывает связанный к изменению кэш. В принципе практически оптимальное решение для подобного кэширования.

И это не вычисление в контексте процесса и аоса.
Старый 14.06.2017, 02:11   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,251 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от 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
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от macklakov Посмотреть сообщение
Он самый. Некоторые места в коде overengineered настолько, что смысл происходящего начинает ускользать. И наименования объектов лишь добавляют мистики.

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

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

А пересчитывать его имеет смысл только если кто-то меняет сам конвершн. Оттого и постоянная таблица.
За это сообщение автора поблагодарили: Vadik (1), ax_mct (3).
Старый 19.06.2017, 14:21   #7  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
97 / 46 (2) +++
Регистрация: 30.08.2007
Адрес: Ulm
Записей в блоге: 6
я почему спросил: в таблице 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, время: 19:28.