02.10.2018, 13:13 | #1 |
Участник
|
Кеширование вьюх. (Свойство 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 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|