Экономика стран

К сожалению, большинство людей, которые будут ими затронуты почти весь мир, не будут иметь никакого влияния на результат. Вести Экономика Дайджест иностранной прессы за 14 августа.
Вести Экономика Греции снова придется списывать долги Греция не сможет самостоятельно расплатиться по долгам, и понадобится новая реструктуризация долгов, чтобы спасти страну от банкротства.

Optymalizacja programów ABAP w SAP HANA / Minesweeper / Articles / Knowledge Base / SAPLand - Świat rozwiązań SAP

  1. Przypadek pierwszy
  2. Przypadek drugi
  3. Analiza wyników dla pierwszego przypadku przykładu.
  4. Analiza drugiego przypadku
  5. Scenariusze optymalizacji (metody)
  6. Przykładowa optymalizacja warunkowego przypadku próbki
  7. Porównanie metod optymalizacji
  8. Szablony ABAP i metody optymalizacji
  9. Przykład sferyczny.

W każdym systemie SAP istnieje kod Z i oczywiście kod Z działa powoli. Pojęcie „powolny” - jest względne, może to być godziny, a nawet dni, a gdzieś minuty lub sekundy. Praca na platformie SAP HANA pozwala przyspieszyć „długie” uruchamianie programów przy niewielkim wysiłku i osiągnąć wymaganą wydajność, nawet jeśli jest to sekunda.

Optymalizacja algorytmów (etapów) programów ABAP:

  1. Definicja KPI - ile razy należy przyspieszyć program lub wymagany czas pracy w określonych warunkach uruchomienia.

  2. Przeprowadzanie analizy wydajności - uruchamianie programu w określonych warunkach uruchomienia i zbieranie statystyk dotyczących wydajności operatorów.

  3. Zidentyfikuj wąskie gardła i sposoby ich optymalizacji.

  4. Optymalizacja programu.

  5. Powtórzenie punktów 2-4, aż do otrzymania danego KPI lub uznania niemożliwości jego osiągnięcia.

Proces optymalizacji może być niemal „nieskończony” i oczywiście bardzo pracochłonny. Aby uniknąć dodatkowej pracy, konieczne jest określenie warunku zakończenia cyklu optymalizacji lub KPI. Przykładem KPI może być: program powinien przyspieszyć 100 razy lub program powinien działać nie dłużej niż 10 sekund. Oczywiście KPI powinny być realistyczne. Ponadto kluczowy wskaźnik wydajności musi uwzględniać parametry uruchamiania programu: na przykład w przypadku małych ilości danych (na przykład raport za 1 miesiąc) różnica czasu pracy z bazą danych w HANA, a nie w HANA, może być nieistotna, a optymalizacja wymaga znacznych kosztów pracy i dużych ilości danych pa) ta różnica będzie znacznie większa. Oczywiście dane muszą odpowiadać procesowi biznesowemu (nie jest konieczne prowadzenie raportu przez kilka lat, jeśli zawsze działa w ciągu jednego roku).

Przykład wyboru programu KPI

Tabela (rys. 1) pokazuje opcje wyboru KPI .

Rys.1 KPI opcji

Analiza wydajności to zbiór statystyk dotyczących czasów wykonania instrukcji programu ABAP.

Zalecam przeprowadzenie analizy wydajności w transakcji ST12, transakcja ta została zaprojektowana przez SAP AGS (SAP Active Global Support) do kompleksowej analizy wydajności ABAP. Możesz użyć transakcji SAT (stara SE30), jeśli ktoś lubi.

Więcej o ST12 w moim artykule. http://sapland.ru/articles/stats/2013/1/analiz-proizvoditelinosti-abap-programm.html .

Ważną cechą transakcji analizy wydajności są ograniczenia czasu gromadzenia danych i rozmiaru pliku, w którym zapisywane są dane śledzenia, a jeśli ten limit zostanie przekroczony, wynik śledzenia będzie nieistotny, a zatem niewystarczający. Dlatego w przypadku transakcji długoterminowych zaleca się przeprowadzenie analizy z parametrami, tak aby program działał przez około 20 minut, w którym to przypadku otrzymamy pełny ślad, rozkład czasu pracy dla operatorów zbliżonych do rzeczywistych, podczas gdy ślad nie będzie bardzo pracochłonny.

Po śledzeniu musisz posortować wyniki według pola Net (%) w porządku malejącym. Interesuje nas top 3-5, w zależności od rozkładu czasu i pożądane jest, aby połączenia były przypisane do kodu Z.

Przypadek pierwszy

Rysunek 2 to zrzut ekranu wyniku śledzenia transakcji testowej 1, top 3

Rys. 2 Wynik śledzenia transakcji 1 w ST12

W rozpatrywanym przypadku 50% czasu programu jest pobierane przez zapytanie do tabeli AUSP w obszarze Z. A 16% to połączenie FM READ_TEXT, które jest trudne do zoptymalizowania.

Przypadek drugi

Rys. 3 to zrzut ekranu wyniku śledzenia Transakcji testowej 2, top 3

Rys. 3 Wynik śledzenia transakcji 2 w ST12

W drugim przypadku (rysunek ... ..) 51% czasu pracy jest pobierane przez zapytanie w pętli do tabeli MATERIALID, wywołanie z programu standardowego, a 27% czasu jest pobierane przez zapytanie w pętli do tabeli IFLOS. W takich przypadkach analizujemy stos egzekucji.

W takich przypadkach analizujemy stos egzekucji

Rys. 4 Analiza stosu wykonywania instrukcji dla transakcji 2 w ST12

Widzimy, że kod problemu znajduje się w interfejsie BAPI, który jest wywoływany w implementacji BADI. Istnieje więc możliwość optymalizacji, około 70%.

Po zebraniu śladu należy przeanalizować wąskie gardła w wydajności programu, a następnie opracować plan optymalizacji.

Analiza wydajności kodu programu ABAP poświęcona jest kilku kursom SAP, książkom, artykułom w Internecie. Mamy wiele różnych sytuacji, które trudno opisać w artykule, a nawet w książce. kiedy program ABAP ma niską wydajność Aby w pełni zrozumieć wszystkie zawiłości ABAP, musisz przeczytać sporo kursów, książek i mieć duże doświadczenie w programowaniu w ABAP.

Jednak rozważę kilka podstawowych wzorów sytuacji:

Tabela 1

Analiza wyników dla pierwszego przypadku przykładu.

Wynik śledzenia jest podawany dla transakcji testowej 1

Rys. 5 Wynik śledzenia transakcji 1 w ST12

Wyglądamy na kod ABAP

Wyglądamy na kod ABAP

Widzimy ciężkie, szczególnie dla SAP HANA, zapytanie SELECT ... DLA WSZYSTKICH WPISÓW

Analiza drugiego przypadku

Analiza drugiego przypadku

Rys.6 Wynik śledzenia transakcji 2 w ST12

Wywołanie BAPI w pętli (prawie 200 tys. Razy), w której nadmiarowe żądania

Rys. 7 Miejsce połączenia BAPI. Co jest przyczyną słabej wydajności

Scenariusze optymalizacji (metody)

Istnieją dwa scenariusze korzystania z HANA: „ ABAP w HANA ” i „ HANA Accelerator przez dodatkowe połączenie DB ”.

  • Najwygodniejszym przypadkiem jest ABAP na HANA, wtedy możemy użyć widoku zewnętrznego i ADMP (w poprzednim proxy bazy danych), a zapytania SQL ABAP OPEN są wykonywane w HANA, możemy także użyć Core Data Service zamiast widoku HANA

  • Wariant z akceleratorem HANA jest bardziej złożony i już egzotyczny, ponieważ jesteśmy ograniczeni w używaniu procedur przechowywanych (nie ma możliwości przekazania tablicy danych (tabela wewnętrzna) do parametrów procedury składowanej), musimy przekonwertować SELECT-OPTIONS na warunek WHERE. Jeśli optymalizacja ABAP (SELECT ... CONNECTION) nie jest wystarczająca, konieczne jest przeniesienie logiki programu ABAP do widoku obliczeń HANA.

Przykładowa optymalizacja warunkowego przypadku próbki

Istnieje program, w którym ślad wykazywał słabą wydajność w pętli LOOP

Program nie został całkowicie przepisany, zastąpiliśmy wolny cykl wywołaniem ADMP (procedura przechowywana), logika cyklu została przeniesiona do procedury składowanej

Ten sam przypadek, ale przy użyciu akceleratora HANA; Musiałem przepisać cały program w widoku HANA, który jest bardziej pracochłonny.

Porównanie metod optymalizacji

  • Optymalizacja ABAP jest najstarszą metodą, jest szczególnie przydatna, gdy HANA jest wykorzystywany jako akcelerator, czasami wystarczy wysłać żądanie do HANA (SELECT ... CONNECTION) i już osiągnąć znaczące wyniki.

  • Optymalizacja procedur przechowywanych przy użyciu HANA jest bardzo wygodna podczas korzystania z ADMP, pozwala szybko zoptymalizować kod problemu, bez przeprojektowywania całego programu, wygodne jest przenoszenie wewnętrznych tabel, ale nie jest wygodne używanie i przenoszenie warunków WHERE

  • Optymalizacja za pomocą silnika obliczeniowego HANA (w naszym przypadku graficznego) jest jednym z najbardziej czasochłonnych sposobów optymalizacji, ma sens optymalizować duże obszary problemowe programów lub w pełni przenosić logikę ABAP do HANA, ale jednocześnie uzyskać znaczne przyspieszenie (setki razy). Możesz użyć SELECT-OPTIONS, aby ograniczyć dane w widoku HANA (jako widok Exteranl).

Optymalizacja za pomocą usługi Core Data Service (CDS) jest taka sama jak w przypadku widoku HANA, ale bardziej elastyczna ze względu na użycie języka SQL. Zaleca się używanie zamiast widoku HANA Poniżej przedstawiono niektóre typowe szablony ABAP i sposób ich optymalizacji (przenoszone do HANA)

Szablony ABAP i metody optymalizacji

Tabela 2

Ogólne porady.

Wszystkie przetwarzanie danych to wybór, kombinacja lub agregacja danych. Postaraj się więc przedstawić logikę danych w tej formie. Następnie spróbuj przenieść logikę z ABAP do normalnego SQL, Google pomaga. Ponadto, jeśli używasz CE i CDS, ten SQL może zostać przeniesiony do funkcji CE.

Przykład sferyczny.

ABAP:

Ograniczony dostęp

Aby przeczytać pełną wersję artykułu, musisz zalogować się jako zarejestrowany użytkownik.

Навигация сайта
Реклама
Панель управления
Календарь новостей
Популярные новости
Информация
Экономика стран www.mp3area.ru © 2005-2016
При копировании материала, ссылка на сайт обязательна.