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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.10.2018, 14:07   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Возможно, причина, по которой в ядре не разрешено кэшировать записи View, в том, что для обычных таблиц у ядра есть механизмы отслеживания, когда кэши стали неактуальными, а View для ядра - это некая абстракция, можно сказать, черный ящик, и там такого механизма актуализации кэшей нет. К примеру, если отвлечься от идеи обновлять кэш View по изменению любой связанной таблицы, во View ведь может быть вычисляемое поле, которое лезет подзапросом в другие таблицы или смотрит на текущую фазу луны. Кэширование записей View с таким полем легко может привести к тому, что от кэша будет куда больше вреда, чем пользы. Думаю, из этих соображений на View и отключили кэширование средствами ядра.
За это сообщение автора поблагодарили: Logger (3).
Старый 02.10.2018, 15:07   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,964 / 3250 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Возможно, причина, по которой в ядре не разрешено кэшировать записи View, в том, что для обычных таблиц у ядра есть механизмы отслеживания, когда кэши стали неактуальными,...
Да, вероятно в этом и была причина почему они так сделали.

Хотя, я думаю что все же случай вычисляемых полей - не такой частый. Плюс всегда ведь можно написать в insert / update / delete табличек код
X++:
super();
flush TableName;
в параметрических табличках везде так пишут и никто не умер. А для обычных полей ядро легко может зависимость отследить, ведь когда Query меняешь, то ядро предупреждает что есть зависимые вьюхи и обновляет их. Так и тут.

Кстати, кеширование джоинов в связке с прямыми запросами к базе уже приводило к подобным проблемам - была где-то тема про кеширование запроса по джоину InventSum - InventDim. Т.е. джина уже выпустили из бутылки... Нет причин не делать кеширование вьюх, если сделали кеширование джоинов.
Теги
cache, cache lookup, query, view

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxhints: Statistics on CacheLookup property in AX 2012 R3 Blog bot DAX Blogs 0 04.04.2016 16:11
dynamicsaxhints: How to restrict view datasource fields Blog bot DAX Blogs 0 22.03.2016 09:11
emeadaxsupport: AX Content: Using Power View with Dynamics AX Blog bot DAX Blogs 0 17.09.2013 01:12
dynamicsaxbi: Better together: Microsoft Dynamics AX 2012 R2 and SQL Server Power View Blog bot DAX Blogs 0 12.12.2012 13:11

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

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

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