Перейти к основному содержимому
Версия: 6.x

Выполнение

Если система небольшая и данных в ней немного, как правило, она работает достаточно эффективно без каких-либо дополнительных оптимизаций. Если же логика становится достаточно сложной, а количество данных значительно возрастает, часто имеет смысл подсказать платформе как лучше хранить и обрабатывать все эти данные.

В платформе есть два основных механизма работы с данными : свойства и действия. Первый отвечает за хранение и вычисление данных, второй - за перевод системы из одного состояние в другое. И если работа действий поддается оптимизации достаточно ограниченно (в том числе из-за эффекта последействия), то для свойств существует целый набор возможностей, которые позволяют как уменьшить время отклика конкретных операций, так и увеличить общую производительность системы:

Материализации

Если чтений свойства достаточно много (значительно больше чем изменений), можно существенно улучшить производительность операций, использующих такое свойство, материализовав его.

Индексы

Если свойство часто участвует в вычислениях других свойств, как правило, имеет смысл построить индекс по этому свойству.

Таблицы

Если для одного и того же набора объектов часто читаются / изменяются одновременно одни и те же свойства, хранить каждое такое свойство отдельно может быть достаточно неэффективно. Поэтому в платформе хранение свойств можно "группировать" в так называемые таблицы.