1. Плотные (dense) измерения
Использовать нужно всегда т.к. это ведет к уменьшению размера блока => размер куба будет меньше => производительность расчетов улучшится, производительность извлечения данных (retrieve) меняется незначительно +/- 1%! Необходимо только избегать динамических элементов с комплексными формулами т.е. когда при расчете формулы необходимо смотреть в другие блоки. Кандидаты на изменения типа храния на динамический - родители или любой элемент с простой формулой.
Примеры (Период и Статья - плотные, Страна - разряженные):
- Кварталы (Q1, Q2, Q3, Q4) - можно сделать динамическими
- (+) Acc_Total: Выручка итого
(+) Acc_01: Выручка A
(+) Acc_02: Выручка Б
Статью Acc_Total можно сделать динамической
- Статья: Prof_01 = Acc_01 / Acc_Total - можно сделать динамической (расчет в пределах одного блока)
- Статья: Prof_Russia = Acc_Total->Entity_Russia - нужно делать хранимой т.к. при распаковке любого блока (расчете или просмотре) Essbase будет смотреть на блок по стране Entity_Russia
2. Разряженные (sparse) измерения
Использовать можно только для уменьшения времени агрегации, при этом ухудшается время извлечения данных (retrieve).
Пример:
- (+) Entity_Russia - dynamic
(+) Entity_Msc - store
(+) Entity_Spb - store
Если пользователь строит запрос по Entity_Russia, то серверу необходимо прочитать 2 дополнительных блока по Msc и Spb
- Когда элемент участвует в выгрузках (report script, dataexport)
- Когда элемент участвует в партициях
- Когда элемент участвует в создании блоков (datacopy с динамических элементов не работает)
- Когда на элементе хранят расчетные данные (аллокации, элиминации)
3. Выводы
Динамические элементы - это хорошая возможность улучшить производительность, но конечно же со своей спецификой.