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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.10.2018, 13:13   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Post Кеширование вьюх. (Свойство CacheLookup для View)
Добрый день всем.

Коллеги, возможно ли штатно в аксапте (речь о 2012-й) кешировать вьюхи ?

В целом в 2012-й версии кеширование очень продвинутое - вплоть до кеширования джоинов. Также поддерживается кеширование по любому уникальному ключу, что очень удобно.
https://docs.microsoft.com/en-us/dyn...record-caching

Про вьюхи в документации сказано как-то расплывчато.
https://docs.microsoft.com/en-us/pre...869223(v=ax.60)

Явно указано
Цитата:
The properties that can be set for a View are listed below.
...
CacheLookup Retrieves the record cache level for the table.
т.е. запрета вроде как нет.

Но явно не описано как можно было бы использовать кеширование. Кроме того в свойствах вьюхи поле CacheLookup задизейблено. Т.е. получается, что нельзя.

Как-то это нелогично.
Вьюхи используются практически везде. Строятся зачастую по Query, который является джоином табличек по уникальным ключам.
При таком условии если мы делаем запрос через Query - то кеш отрабатывает. А если используем View основанный на Query - то нет. Т.е. увеличивается нагрузка на базу.

Я попробовал хакнуть вьюху. Выгрузил в xpo задал в xpo свойства
X++:
      CacheLookup         #Found
      CreateRecIdIndex    #Yes
импортнул обратно.


Кеширование по RecId заработало !

Интересно, что при импорте утилита сравнения не показала никаких отличий. Т.е. она не учитывала эти свойства. Также если не выставить
Цитата:
CreateRecIdIndex #Yes
то тоже кеширование не работает.

Другие индексы прописать невозможно, что в общем неудивительно, так как во вьюхе могут быть свои поля, которые называются совсем не так, как поля в индексе таблички.

Странно, все же почему во вьюхах штатно кеширования нет. Реально то движок есть и для RecId даже можно заставить его работать. Т.е. можно было бы в интерфейс привинтить возможность указания ключа кеширования (например как в RecordSortedList можно задавать ключа хранения / поиска). Было бы удобно.


А как в D365 c этим обстоят дела ?
Теги
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, время: 10:01.