SAP S/4HANA
SAP BW/4HANA
SAP ERP
SAP CRM
SAP SCM
SAP SRM
SAP PLM
Von SAP ECC zu SAP S/4HANA Server
Die meisten herkömmlichen relationalen Unternehmens-Datenbanktabellen basieren auf Zeilenspeicher, da dies als optimales Speicherdesign für eine OLTP-Anwendung (Online Transaction Processing) betrachtet wird. Eine OLTP-Anwendung erfordert schnelle Aktualisierungen auf Datensatzebene. In der Regel werden hier alle Spalten im Datensatz für die Verarbeitung benötigt.
SAP HANA unterstützt OLTP-Anwendungen, die Zeilenspeicher verwenden, vollständig, unterstützt aber auch spaltenbasierten Speicher, der das optimale Speicherdesign für Online-Analytical-Processing-Anwendungen (OLAP-Anwendungen) darstellt. OLAP-Anwendungen arbeiten in der Regel mit Tabellen mit großen Datenmengen, die schnell durch Ad-hoc-Querys aggregiert werden müssen.
Die Datenbank von SAP HANA unterstützt sowohl Zeilentabellen als auch Spaltentabellen in derselben Datenbank. Moderne Anwendungen, wie z.B. SAP S/4HANA, kombinieren Transaktionen und Analysen, sodass SAP HANA mit seinem Zeilen- und Spaltenspeicher die ideale Datenbank für die Erstellung dieser Anwendungen ist.
Spaltentabellen sind für analytische Anwendungen effizient, bei denen Anforderungen für eine Auswahl von Daten nicht planbar sind. Querys von analytischen Anwendungen, die an die Datenbank gesendet werden, erfordern häufig nur eine Teilmenge der gesamten Daten in der Tabelle. In der Regel werden nur wenige Spalten aus der Tabelle und auch nur eine begrenzte Anzahl von Einträgen aus den Spalten benötigt. Mit Spaltentabellen werden nur die erforderlichen Spalten in den Hauptspeicher geladen, sodass vermieden wird, den Speicher mit Spalten zu füllen, die nie verwendet werden. Außerdem werden die Daten effizient angeordnet – alle Werte einer Spalte werden nacheinander angezeigt. Diese kontinuierliche Reihenfolgeplanung der Spaltenwerte wird von der CPU bevorzugt, die die Werte effizient scannen kann, ohne unerwünschte Werte überspringen zu müssen.
Mit Spalten-basierter Speicherung scannt SAP HANA Spalten mit Daten so schnell, dass zusätzliche Indizes in der Regel nicht erforderlich sind, auch wenn sie unterstützt werden. Dies trägt dazu bei, die Komplexität zu reduzieren, indem vermieden wird, dass separate Indizes ständig angelegt, gelöscht und neu erstellt werden müssen.
Spaltentabellen können mühelos geändert werden, z.B. indem zusätzliche Spalten hinzugefügt oder Spalten gelöscht werden, ohne Daten zu löschen und erneut zu laden.
Spaltentabellen sind für die parallele Verarbeitung optimiert, da jeder CPU-Kern in einer separaten Spalte arbeiten kann.
Der Nachteil zu Spaltentabellen sind die Kosten für die Neuerstellung vollständiger Datensätze aus den separat gespeicherten Spalten. Die Neuerstellung erfolgt in der Regel in transaktionalen Anwendungen, die den vollständigen Datensatz zum Aktualisieren, Kopieren oder Löschen benötigen. Es ist zwar möglich, transaktionale Anwendungen basierend auf Spaltentabellen zu erstellen, die Performance ist jedoch besser, wenn Sie zeilenbasierte Tabellen verwenden, in denen alle Spalten in einem Datensatz immer zusammengehalten werden und in einem Schritt gelesen werden können.
Heutzutage kommt es jedoch häufig vor, dass Anwendungen transaktionale und analytische Elemente kombinieren. In diesem Fall müssen Sie entscheiden, welche die am besten geeignete Speichermethode ist. Sie können keine Tabelle verwenden, die sowohl zeilenbasiert als auch spaltenbasiert ist.