Dynamic Calc Members (BSO)

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. Выводы

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