- Запускаем расчет
- Анализируем лог
- Находим узкое место
- Оптимизируем :)
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 Calc Scripts" by Edward Roske
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
Комментариев нет:
Отправить комментарий