|
02.10.2018, 14:07 | #1 |
Участник
|
Возможно, причина, по которой в ядре не разрешено кэшировать записи View, в том, что для обычных таблиц у ядра есть механизмы отслеживания, когда кэши стали неактуальными, а View для ядра - это некая абстракция, можно сказать, черный ящик, и там такого механизма актуализации кэшей нет. К примеру, если отвлечься от идеи обновлять кэш View по изменению любой связанной таблицы, во View ведь может быть вычисляемое поле, которое лезет подзапросом в другие таблицы или смотрит на текущую фазу луны. Кэширование записей View с таким полем легко может привести к тому, что от кэша будет куда больше вреда, чем пользы. Думаю, из этих соображений на View и отключили кэширование средствами ядра.
|
|
|
За это сообщение автора поблагодарили: Logger (3). |
02.10.2018, 15:07 | #2 |
Участник
|
Цитата:
Хотя, я думаю что все же случай вычисляемых полей - не такой частый. Плюс всегда ведь можно написать в insert / update / delete табличек код X++: super(); flush TableName; Кстати, кеширование джоинов в связке с прямыми запросами к базе уже приводило к подобным проблемам - была где-то тема про кеширование запроса по джоину InventSum - InventDim. Т.е. джина уже выпустили из бутылки... Нет причин не делать кеширование вьюх, если сделали кеширование джоинов. |
|
Теги |
cache, cache lookup, query, view |
|
|