Oracle Database-Anwendungsoptimierungen für SAP

Als SAP die In-Memory-Datenbank HANA entwickelte, entdeckten sie, dass ihre eigenen Anwendungen die schlimmsten Feinde der neuen In-Memory-Datenbank waren. SAP erkannte, dass ihre Anwendungen optimiert werden mussten, um von HANA zu profitieren. Während SAP jedoch nur HANA im Auge hatte, können funktionsreiche Datenbanken wie Oracle dieselben Optimierungen unterstützen und davon profitieren.

Oracle Database-Support für SAP-Anwendungsoptimierungen

Optimierung der Workload-Verteilung

Früher hielt SAP eine Datenbank für einen dummen Datenspeicher. Wann immer ein Benutzer etwas Nützliches mit den Daten tun will, müssen sie übertragen werden, denn die Intelligenz sitzt im SAP Application Server.

Die Nachteile dieses Ansatzes liegen auf der Hand: Wenn die Summe von 1 Million Werten berechnet werden muss und diese Werte Geld in verschiedenen Währungen darstellen, werden 1 Million Einzelwerte vom Datenbankserver auf den Applikations-Server übertragen - nur um nach der Berechnung weggeworfen zu werden. Der durch diesen Ansatz verursachte Netzwerkverkehr ist für die schlechte Leistung verantwortlich.

Als Antwort auf diese Erkenntnis entwickelte SAP die "Push-Down"-Strategie: Push-Down-Code, der datenintensive Berechnungen von der Anwendungsschicht bis zur Datenbankschicht erfordert. Sie entwickelten ein völlig neues Programmiermodell, mit dem ABAP-Code (implizit oder explizit) in der Datenbank gespeicherte Aufrufprozeduren aufrufen kann. Und sie haben eine Bibliothek mit Standardverfahren definiert, die als SAP NetWeaver Core Data Services (CDS) bezeichnet wird.

20 Jahre zuvor hatte Oracle bereits die gleiche Idee und die gleiche Entscheidung getroffen. Seit Version 7 können Entwickler mit Oracle Database Prozeduren und Funktionen erstellen, die in der Datenbank gespeichert und ausgeführt werden können. Daher war es möglich, CDS auch für Oracle Database verfügbar zu machen, und heute können SAP-Anwendungsentwickler davon Gebrauch machen.

Datenmodelloptimierungen

SAP BW: Flat InfoCubes

Die Datenmodelle von SAP (die von einer Anwendung verwendeten Tabellen und die Beziehungen zwischen ihnen) wurden vor 15 oder 20 Jahren definiert und für datenträgerorientierte Datenbanken optimiert. Doch was im Zeitalter des plattenbasierten Computings eine Optimierung war, erweist sich im Zeitalter des In-Memory-Computings als Hindernis.

Das bekannteste Beispiel ist wahrscheinlich die interne Struktur eines SAP BW-Cubes. Was aus Unternehmens- oder Benutzerperspektive wie ein einziger "Würfel" aussieht, ist in Wirklichkeit ein Komplex von mehreren Tabellen, und die Beziehungen zwischen ihnen können als mehrstufige Hierarchie beschrieben werden (Stern- oder Schneeflockenschema). Diese komplexe Struktur, die viele Joins erfordert, wenn eine Abfrage oder ein Bericht ausgeführt wird, verlangsamt In-Memory-Datenbanken erheblich. Daher entwickelte SAP ein neues, einfacheres Datenmodell für SAP BW on HANA und nannte es folglich HANA-optimiert InfoCubes. Dieses neue Datenmodell ist jedoch nicht nur für HANA optimiert. Es ist für In-Memory-Computing im Allgemeinen optimiert. Daher kann SAP auch auf Oracle-Benutzern, die Oracle Database In-Memory aktiviert haben, es implementieren. Der einzige Unterschied ist der Name (Flat InfoCubes oder einfach Flat Cubes).

SAP OLTP-Anwendungen: Tabellendeklarierung

Eine weniger bekannte, aber dennoch wichtige Optimierung ist Table Declustering. Eine Clustertabelle speichert einen vollständigen (logischen) Datensatz in einer einzelnen (physischen) Tabellenspalte. Ein solcher komplexer Wert kann vom SAP Application Server interpretiert werden, jedoch nicht von einem Datenbankserver - was bedeutet, dass ein Code-Pushdown bei einer Cluster-Tabelle nicht möglich ist. Daher unterstützt SAP jetzt Table Declustering, sowohl für HANA als auch für Oracle Database.

Optimierungen der Anwendungsentwicklung

Die Vorteile des soeben beschriebenen CDS-Frameworks sind keineswegs auf SAP-Anwendungen beschränkt (d.h. Standardanwendungen, die von SAP-Entwicklern erstellt wurden). Für Kunden sind selbst entwickelte Anwendungen ein wesentlicher Bestandteil ihrer SAP-Landschaft. Viele dieser Anwendungen könnten erheblich von der Verwendung von CDS-Funktionen profitieren.

CDS-Ansichten können über OData angezeigt werden. Basierend auf der OData-Exposition von CDS ist es dann ziemlich einfach, SAP Fiori-Anwendungen mit dem Entwicklungs-Framework SAP WEB IDE zu erstellen. Einzelheiten finden Sie im Bericht ABAP Core Data Services auf anyDB.