Я тестирую загрузку данных в Essbase Cube через Load_Buffer. Целью здесь является параллельная загрузка данных и последующая фиксация данных. В настоящее время самый быстрый подход, который я нашел, это запуск правила загрузки SQL самостоятельно через MAXL. Я также пытался использовать MAXL «использование нескольких rules_files», и это заняло еще больше времени.
В Oracle Руководстве администратора базы данных Essbase упоминается, что вы можете загружать данные в буфер для повышения скорости параллельно. Для этого мне нужно запустить 3 оболочки MAXL одновременно в load_buffer.
Проблема, с которой я сталкиваюсь, заключается в том, что данные C, M и R выполняются в разное время в: SUB_ C. Правило C имеет 12 миллионов записей, Правило M имеет 10,5 млн., А Правило R имеет 15 млн. Я ожидал, что Data R завершится последним, но правило C сохранилось, и процедура перешла к фиксации изменения в: SUB_E до загрузки всех данных.
С текущим правилом загрузки SQL время выполнения составляет около 333 секунд. С load_buffer (когда он работает) время выполнения достигает 450 секунд. Каждое правило загрузки самостоятельно (C, M, R) занимает 100,96 и 220 секунд.
Вот мой код:
SET $1-$9 (Parameters 1-9)
CALL :SUB_A
CALL :SUB_B
CALL :SUB_C
CALL :SUB_D
CALL :SUB_E
CALL :SUB_F
GOTO :EOF
:SUB_A
ECHO STARTING_REBUILD_%$4%- Started at %time% on %date% > D:\Logs\Rebuild_%$4%_Start.log
EXIT /B
:SUB_B
REM DIMENSION BUILDS
ECHO STARTING REBUILD_%$4%
START "REBUILD %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
ECHO ENDING REBUILD_%$4%
EXIT /B
:SUB_C
REM DATA LOADS USING LOAD_BUFFER - After a lot of research, these loads tend to end at different times and skip to the next section so parallel won't work
START "DATA_C %$4%" CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_C.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
START "DATA_M %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_M.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
START "DATA_R %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_R.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
EXIT /B
:SUB_D
REM - Test
EXIT /B
:SUB_E
REM COMMIT DATA
START "COMMIT %$4%" /W CMD /c D:\Oracle\Middleware\user_projects\epmsystem1\EssbaseServer\essbaseserver1\bin\startMaxl.bat Rebuild_%$4%_Data_Z.msh %$1% %$2% %$3% %$4% %$5% %$6% %$7% %$8% %$9%
EXIT /B
:SUB_F
ECHO ENDING_REBUILD_%$4%- Ending at %time% on %date% > D:\Logs\Rebuild_%$4%_End.log
EXIT /B
:EOF