Programmierung mit HANA Teil 2

Im ersten Teil unseres Blogartikels haben wir noch allgemein über den Umbau auf HANA und das bestehende Coding gesprochen. In dem folgenden Blogbeitrag möchten wir nun einen kurzen Ausblick darauf geben, was bei einer Umstellung auf HANA für die Programmierer wichtig sein wird.

Umstellung auf HANA für Programmierer – Was muss angepasst werden?

Durch die Umstellung auf HANA findet in der Regel auch eine Umstellung auf eine spaltenbasierte Speicherung statt. Dies hat zur Folge, das Sekundär Indizes auf der HANA Datenbank nicht angelegt werden. Native SQL-SELECTs, die direkt auf diese Sekundär Indizes zugreifen, werden also nicht mehr funktionieren. Allgemein kann festgehalten werden, dass jeder Datenbank spezifische Quellcode, der aus ABAP aufgerufen wird, geprüft und ersetzt werden muss.

Darunter zählt natürlich auch die Sortierung des Ergebnisses eines SQL-Select, falls kein Sortierkriterium angeben worden ist. Unter einer HANA-Datenbank kann dies sichergestellt werden, indem man dem Select das Schlüsselwort ORDER BY <prima-ry_key> hinzufügt.

Pool und Cluster Tabellen werden im Zuge der Umstellung auf transparente Tabellen umgestellt. Zugriffe auf Cluster Pools müssen auf die jeweilige Tabelle (Bsp.: RE-GUC, REGUP) umgestellt werden.

Wie finde ich die anzupassenden Stellen heraus?

Die SAP hat Werkzeuge zur Verfügung gestellt, die auf diese Stellen hinweisen. Im ABAP Code Inspector oder im ABAP Test Cockpit werden alle oben genannten Stellen aufgelistet.

ABAP Code Inspector

Der ABAP Code Inspector dient dazu SAP-Repository Objekte zu überprüfen. Man kann für eine selbstdefinierte Objektemenge (Zum Beispiel alle Eigentwicklung oder für bestimmte Pakete/Transporte) Prüfungen durchführen. Diese Prüfung wird mit einer Prüfvariante ausgeführt, die man spezifisch auf seine Bedüfnisse anpassen kann. Die vordefinierte Prüfvariante FUNCTIONAL_DB beinhaltet die Prüfregeln um sicherzustellen, dass Eigenentwicklungen unter Verwendung einer HANA-Datenbank lauffähig sind.

ABAP Test Cockpit

Das ABAP Test Cockpit ist ein neu entwickeltes Werkzeug (ab SAP Netweaver Release 7.32) der SAP zur Qualitätssicherung. In den ABAP Test Cockpit werden die verschieden Werkzeuge zur Prüfung und Qualtätsicherung, wie zum Beispiel der ABAP Code Inspector, zusammengefasst.(Quelle: https://blogs.sap.com/2012/10/18/getting-started-with-the-abap-test-cockpit-for-developers/)

Diese Überprüfungen durch den ABAP Code Inspector oder im ABAP Test Cockpit müssen für alle Eigenentwicklungen ausgeführt werden. Im Anschluss sollte dann die Liste vollständig überprüft werden.

Durch das Migrieren auf eine HANA Datenbank sollte sich die Performance systemübergreifend verbessern. Wenn die Entwicklungsrichtlinien eingehalten wurden, dann gibt es in der Regel keinen größeren Anpassungsbedarf. In den Fällen in denen man von den Richtlinien abgewichen ist, könnte sich die Performance unter SAP-HANA eventuell verschlechtern. Man spricht von sogenannten Performance Schwachstellen. Beispiele für Regelverstöße sind:

  • SELECT Schleifen (SELECT/ENDSELECT, FOR ALL ENTRIES)
  • Zu große Datenmengen / Nicht benutze Spalten werden ermittelt (SELECT *)
  • Zu viele Einzel-SELECTs anstatt eines Massen SELECTs

Wie finde ich diese Schwachstellen heraus?

Viele dieser Performance Schwachstellen werden ebenfalls vom ABAP Code Inspector / ABAP Test Cockpit als Hinweise angezeigt. Allerdings ist es natürlich nicht notwendig alle Programmstellen anzupassen. Man sollte sich am Anfang darauf beschränken die Code Stellen anzupassen und zu verbessern, die häufig aufgerufen werden und die die Programmlaufzeit in OLTP (Online-Transaction-Processing) stark verschlechtert. Hintergrundjobs und Nachtläufe sollten nur angepasst werden, falls ihre Laufzeit kritisch ist.

Um diese Stellen zu finden, bietet die SAP nützliche Transaktionen um Laufzeitmessungen für bestimme Programme/Anwender durchzuführen. Beispiele hierfür sind ST05 (Performance Trace) und die SAT (Laufzeitanalyse). Für Laufzeitmessungen über einen längeren Zeitraum bietet die SAP den SQL-Monitor.

Der SQL Monitor ermöglicht es die Laufzeiten über einen längeren Zeitraum mit geringerer Performance zu überwachen. Er listet die häufigsten und teuersten SQL-Anweisungen auf. Er kann auch im Produktivsystem bedenkenlos aktiv geschaltet werden.

SQL Monitor Der SQL Monitor ermöglicht es die Laufzeiten über einen längeren Zeitraum mit geringerer Performance zu überwachen. Er listet die häufigsten und teuersten SQL-Anweisungen auf. Er kann auch im Produktivsystem bedenkenlos aktiv geschaltet werden.

Welche Stellen sollten sonst noch angepasst werden?

Mit der SAP-HANA werden neue Möglichkeiten geschaffen SQL-Datenermittlungen durchzuführen. Insbesondere der Zugriff auf Spalten, die vorher nicht indiziert waren, sind unter HANA besonders schnell. Auch Muster und Teilzugriffe auf Spalten einer Tabelle sind stark optimiert. Diese Logik sollte man in Zukunft und auch im Rahmen der Migration auf die Datenbank auslagern. Ein Beispiel hierfür ist: Ermittle alle Kundenauftragspositionen in denen im Kommentar das Wort Achtung vorhanden ist.

Außerdem bietet die SAP ein neues Feature in ABAP an, die ABAP Core Data Services. Diese bieten die Möglichkeiten HANA-Views in ABAP anzulegen und unter anderem folgende Funktionen direkt auf der HANA Datenbank auszuführen:

  • Allgemeine SQL-Funktionen
  • SAP-Konvertierungsfunktionen (Währungsumrechnungen, Mengenumrechnungen, Datentypcast (NUMC zu CHAR), etc..)
  • String Funktionen (Concatenate, Replace, etc.)
  • Ahremetische Funktionen (Absolut, Division, Runden, etc.)
  • Datum/Zeit Funktionen (Zeitstemple, Datum gültig, Datumsmanipulation, etc.)

Dies bietet die Möglichkeit, Bearbeitungen einer internen Tabelle nach dem Select zu vermeiden, indem man zum Beispiel Währungsumrechnungen direkt im View definiert. Diese neuen CDS-Views können im Übrigen wie die normalen Datenbank-Views in der OPEN-SQL Syntax verwendet werden.

Wie kann PIKON Sie bei einer Umstellung auf die HANA Datenbank unterstützen?

PIKON konnte bereits von Anfang an Erfahrungen mit der neuen Technologie HANA sammeln. Wir wissen um die Schwierigkeiten bei einem Wechsel auf die HANA-Datenbank und können deshalb dort unterstützen, wo Sie sich unsicher sind oder Bedenken haben.

Bereits als HANA noch nicht in der Breite von der SAP vermarktet wurde, forschte PIKON bereits an den Potentialen die in dieser Technologie für die Zukunft stecken können. (u.a. siehe Forschungen der PIKON in Zusammenarbeit mit der Hochschule Pforzheim am Hasso-Plattner-Institut (In-memory-Informationsverarbeitung mit Hana).

Gerne bieten wir, die PIKON für die Entwickler in ihren Unternehmen eine kompakte Schulung an, in denen wir Ihnen einen einfachen Einstieg in die HANA-Entwicklung an die Hand geben. Folgende Themen sind in dieser Schulung enthalten:

  • Einführung in die neue Entwicklungsumgebung ABAP Development Tools in Eclipse
  • Überblick über das HANA Studio (mittlerweile integriert in Eclipse ADT)
  • HANA Datenbankumstellung – Technische Änderungen/kritische Stellen
  • HANA Datenbankumstellung – Performance Optimierung und Analyse
  • Vorstellung des neuen Feature Core Data Services
  • Vorstellung des neuen Feature ABAP Management Database Procedures

Alternativ kann die PIKON ihre Entwickler auch als Coach unterstützen und bei komplexeren Select-oder Performanceproblemen neue Ideen und Ansätze liefern.

Sie möchten mehr erfahren?

Bei Interesse melden Sie sich bei Ihrem Ansprechpartner der PIKON im Bereich Custom Development, Michael Müller.

Wir freuen uns auf ihr Anliegen.

Bildnachweise

Melpomene, Shutterstock

Teilen Sie diesen Beitrag