Поиск проблемных расчетов в скриптах Essbase

Оптимизация скриптов Essbase
Алгоритм оптимизации прост:

  • Запускаем расчет
  • Анализируем лог
  • Находим узкое место
  • Оптимизируем
  • 🙂

 1. Запускаем расчет.

 Самый удобный лог для анализа – это лог esscmd. С его помощью и будем запускать скрипты. Не забудьте в скипте установить параметр “SET MSG SUMMARY” т.к. без него ничего интересного в логе вы не найдете.

 Создаем calc-скрипт PL_Calc.csc, который необходимо анализировать:

SET MSG SUMMARY;
...
A = A + B;
...

 Создаем esscmd-скрипт PL_Calc.scr:

output 1 "PL_Calc.log";
login "ess_server" "admin" "password";

 updatevariable "vEntity" "ess_server" "PL" "" "EN_Russia";
updatevariable "vYear" "ess_server" "PL" "" "FY10";

 select "PL" "PL";

 runcalc 2 "PL_Calc";

 OUTPUT 3;
exit;

 Запускаем esscmd-скрипт и получаем PL_Calc.log:
esscmd PL_Calc.scr

 2. Анализируем лог.

 Для анализа мне понравился RightLog. Качаем и запускаем вот с такими параметрами:
RightLog.exe -i PL_Calc.log -s ; -t -d EUR -f "1012668|1012555|1012553|1012579|1003052" > PL_Calc.csv
Получили PL_Calc.csv

 3. Находим узкое место.

 Открываем PL_Calc.csv в Excel делаем расчетную колонку “Время исполнения” – вот и весь поиск.

 4. Типовые проблемы производительности и возможные варианты решения.
Долго работает XREF – меняйте на партиции.
Долго считается формула на sparse элементе – используйте FRMLBOTTOMUP ON;
Долго работает агрегация – необходимо настраивать порядок измерений, кэши, использовать параллельные вычисления.

 По настройке оптимизации предлагаю почитать Optimizing Calculations, взято с ODTUG Hyperion Content

 P.S. Если необходимо просматривать информацию о кол-ве обработаных блоков

RightLog.exe -i PL_Calc.log -s ; -t -d EUR -f "1012668|1012555|1012553|1012579|1003052|Calculations:|Block Created|1012574|1017018" > PL_Calc.csv