Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Johann
Product and Topic Expert
Product and Topic Expert
Performanceoptimierung ist eine zentrale Aufgabe eines jeden Entwicklers/ Modellierers, da neben Qualität insbesondere Geschwindigkeit eine zentrale Anforderung an ein modernes Berichtswesen darstellt. Vor diesem Hintergrund haben wir für Sie eine kleine Blog-Serie erstellt, welche die zentralen Fragestellungen gerichtet an die Performanceoptimierung eines SAP BW/4HANA Systems behandelt:

- Performanceoptimierung - SAP BW/4HANA Teil 1

- Performanceoptimierung - SAP BW/4HANA Teil 2

- Performanceoptimierung - SAP BW/4HANA Teil 3

Dieser erste Blog soll Ihnen dabei einige allgemeine Techniken und Ansätze erläutern, die zur Steigerung der Berichtsperformance eingesetzt werden können.

Wie können Sie die Laufzeit-Performance ihrer Auswertungen grundsätzlich verbessern?

Die erste und beste Antwort ist natürlich: Durch Migration zur SAP-HANA-Datenbank. Diese erlaubt durch in-Memory-Technologie einen extrem beschleunigten Datenzugriff und eine direkte Datenverarbeitung dort, wo die Daten liegen. Ein zeitaufwändiges Übertragen von Massendaten zwischen Datenbank- und Anwendungsserver kann somit eingespart werden.

Aber die Menge gesammelter Daten wächst und wächst…

Irgendwann stellen sich auch Nutzer von SAP S/4HANA und SAP BW/4HANA die Frage, welche Performance-Optimierungsmöglichkeiten existieren. Generell gibt es außer der Hardware-Optimierung 3 Bereiche, an die man denken sollte:

1) Optimales Ausnutzen der HANA-Funktionen:

Achten Sie darauf, dass die Tabellen den richtigen Speichertyp für die jeweilige Anforderung haben, vor allem bei selbstdefinierten Modellen. Für kleine Tabellen, insbesondere wenn Sie ganze Datensätze ändern, ist der zeilenbasierte Speicheransatz optimal. Wenn Sie Tabellen für Auswertungen nutzen und dabei einzelne Spalten aggregieren, ist das Spaltenspeicher-Format besser. Wenn beim Spaltenspeicher-Format die Zugriffszeiten immer länger werden, prüfen Sie, ob die Jobs, die den Spaltenspeicher neu sortieren und verdichten (Delta-Merge-Jobs) oft genug und mit Erfolg ausgeführt werden. Achten Sie bei Programmen darauf, dass so viel Logik wie möglich in der Datenbank abgearbeitet wird, z. B. durch native Calculation Views oder CDS Views. Lesen Sie nur die benötigten Spalten. Wählen sie in Calculation Views performance-optimierte Join-Typen: Wenn die referentielle Integrität von Daten gewährleistet ist, verwenden Sie Referential Joins anstelle von Inner Joins.

2) Zusätzliches Speichern von Werten:

Wenn Daten extrem stark verdichtet gebraucht werden (Tausende Zeilen werden im Mittel zu einer verdichtet) und wenn große Datenmengen häufig gelesen werden, macht eine redundante Speicherung von Daten immer noch Sinn, insbesondere wenn (Kennzahl-)Filter auf aggregierten Werten ausgeführt werden. Da Joins auf berechneten Werten deutlich langsamer sind als Joins auf gespeicherten Spalteninhalten, kann die Performance solcher Joins gesteigert werden, wenn die berechneten Werte physisch gespeichert sind.

Auch mit SAP HANA ist Pufferung wiederholt zu lesender Daten in einem Cache der Anwendung sinnvoll.

3) Zusatz-Optionen zur Performanceoptimierung:

Große SAP-HANA-Datenbanktabellen werden defaultmäßig per Hashfunktion partitioniert, d. h. in Teile aufgeteilt, die parallel gelesen werden. Aber schon bei mittelgroßen Tabellen kann eine selbstdefinierte Partitionierung Sinn machen. Achten Sie darauf, dass Sie Felder als Partitionierungskriterium benutzen, die in den Abfragen als Aufriss- oder Filtermerkmal benutzt werden und dass die Partitionen ähnlich groß sind. In wenigen Fällen kann sogar ein Index über mehrere Spalten sinnvoll sein; analysieren sie die Performance mit und ohne diese Option.