Комментарии по теме

«Подход к выбору системы для ре­а­ли­за­ции отче­тно­сти в S/4 или BW on HANA»
Алексей Рыбин:
Добрый день, Илья! Спасибо, интересная и актуальная публикация! Совсем недавно нами проводился анализ подобного рода. Были найдены схожие с Вашими аргументы для выбора того или иного сценария. В...
«Об одной те­хно­ло­гии работы с длинными текстами в SAP BW, BI-IP»
Илья Муковоз:
Более красивое решение: SAP BW - BusinessDocumentService (BDS).
«Рестарт SAP ERP и влияние на SAP BW»
Олег Точенюк:
Да я прочитал, я вообще интересуюсь, вы где-то такое видели с копированием продуктивных мандантов (классическое заблуждение, не знаю кого) и ... если видели, то добавить мандант нужно было на этапе...

База знаний

Вы можете подписаться на эту колонки этого автора, если авторизируетесь или зарегистрируетесь

SAP BW performance horror stories

21 октября 2020, 23:43

Существует огромное количество источников знаний по SAP BW – это и курсы вендора, и многостраничные книги, и бесконечные блоги. Однако, найти в них сжатые ответы на практические, касающиеся оптимизации производительности отдельных элементов системы вопросы зачастую сложно либо невозможно. Из личного 12-летнего опыта внедрения и развития системы SAP BW 7.x я вынес ряд выводов насчёт того, как можно повысить производительность экстракции данных в SAP BW и оптимизировать работу цепочек загрузки данных. Одним примером из практики я сейчас и поделюсь с вами.

Более 8 лет (из них 3 года тим-лидом) я проработал консультантом SAP BW на небезызвестную американскую корпорацию, продающую напитки. За время моей работы на заказчика в SAP ECC и SAP BW были запущены 4 его крупных российских бизнеса, а также бизнесы Западной Европы и ЮАР. Всё это в совокупности, и в первую очередь объёмы российского бизнеса, приблизили размер занимаемого в базе данных места учётной системы SAP ECC к 10 Терабайтам, а SAP BW – к 9 Тб.

Интересно то, что в конце каждого из проектов запуска крупного бизнеса в транзакционных системах SAP (ECC, APO) или отдельной функциональности (например модуль SD) в компании достаточно остро вставал вопрос производительности экстракции в SAP BW и производительности SAP BW самой по себе. Особо остро вопрос производительности встал, когда SAP BW стал источником данных для других смежных систем, а бизнес установил ограничения на время подготовки данных в SAP BW.

Особенно остро этот вопрос вставал на финише первых проектов, но ближе к завершению автоматизации, команда, включая вашего покорного слугу, научилась работать с этим вызовом. Это позволило завершить последний проект, автоматизировавший 4-й крупный российский бизнес корпорации гладко. Но и тут не обошлось без ложки дёгтя.

Пример из жизни: в ходе одной из доработок я столкнулся с низкой производительностью функционального модуля READ_TEXT при чтении текстов транспортировок. Для решения проблемы под задачи экстракции в SAP BW я адаптировал Z-функциональный модуль коллег из команды сбыта для массового чтения текстов, который был известен нашей проектной команде практически с начала проекта.

В ходе подготовки к ключевому запуску я искал, как же ещё можно ускорить работу загрузок данных. Каково же было моё удивление, когда я обнаружил READ_TEXT в десятке мест в далеко не самых быстрых Z-экстракторах и в расширениях стандартных экстракторов! Да при этом ещё FM в массе своей работал в цикле. То есть READ_TEXT запускал выборку из базы данных в цикле, что по определению драматически влияет на производительность.

К счастью для проекта заказчика, экстракторы, которые оказывали значимое влияние на производительность цепочек я успел переписать и заменить злосчастный READ_TEXT на функцию массового чтения текстов. Удалось выиграть так нужные 1-2 часа времени на загрузку данных.

Урок: В рамках организации, эксплуатирующей и развивающей SAP BW необходимо качественное рассмотрение разработок  (code review) и ведение методички (или wiki) лучших практик по разработке в конкретной системе, к которой могут обратиться как лиды, так и члены проектных групп.

Практика показала, что знание об оптимальной технологии или функционале даже всей командой не гарантирует ни того, что оптимальная технология будет применена, ни того, что другая команда, работающая в параллели, оптимального пути с лёгкостью избежит.

Как я упоминал, это всего лишь один пример того, как можно повысить эффективность экстракции данных. Если вам интересна эта тема, то я приглашаю вас на мой мастер-класс, где я расскажу о подходе к анализу производительности экстракции, организации теста производительности (performance test), поделюсь методом безболезненной организации расширений кода пользовательских расширений SAPI-экстракторов и проверки их оптимизированных версий, а также примерами проблем и решений, с которыми ваш покорный слуга столкнулся на своей практике.

Жду вас на встрече!

Константин Филиппов