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. Doch während SAP nur an HANA dachte, können funktionsreiche Datenbanken wie Oracle dieselben Optimierungen unterstützen und davon profitieren.

Oracle Database Support for SAP Application Optimizations

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 zum Anwendungsserver übertragen – nur um nach der Berechnung gelöscht zu werden. Der Netzwerkverkehr, der durch diesen Ansatz verursacht wird, ist für die schlechte Leistung verantwortlich.

Als Reaktion auf diese Erkenntnis entwickelte SAP die „Push-Down“-Strategie: Push-Down-Code, der datenintensive Berechnungen erfordert, von der Anwendungsschicht auf die Datenbankschicht. Sie entwickelten ein völlig neues Programmiermodell, das es ABAP-Code ermöglicht, in der Datenbank gespeicherte Prozeduren (implizit oder explizit) aufzurufen. 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 ermöglicht Oracle Database Entwicklern das Erstellen von Prozeduren und Funktionen, 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.

Optimierung des Datenmodells

SAP BW: Flat InfoCubes

Die Datenmodelle von SAP (die Tabellen, die eine Anwendung verwendet 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 hat SAP ein neues, einfacheres Datenmodell für SAP BW auf HANA entworfen und es konsequenterweise HANA-Optimized InfoCubes genannt. Dieses neue Datenmodell ist jedoch nicht nur für HANA optimiert. Es ist für In-Memory-Computing im Allgemeinen optimiert. Daher können SAP-on-Oracle-Benutzer, die Oracle Database In-Memory aktiviert haben, es ebenfalls implementieren. Der einzige Unterschied besteht im Namen (Flat InfoCubes oder einfach Flat Cubes).

SAP OLTP-Anwendungen: Table Declustering

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. Weitere Informationen finden Sie im Bericht ABAP Core Data Services unter anyDB.