Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Dashboarding

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
NextLytics Newsletter Teaser
Hier für unseren monatlichen Newsletter anmelden!
Newsletter abonnieren
 

Tipps für SQLScript Performance

Performance ist eins der Hauptargumente, SQLScript einzusetzen. Denn mit der Einführung der HANA-Datenbank hat SAP das „Code Pushdown“-Konzept eingeführt. Bei diesem neuen Paradigma werden zeitintensive Berechnungen mit hohem Datenvolumen auf die Datenbankebene delegiert. Mithilfe von SQLScript haben Sie systemeigenen Zugriff auf die HANA-Datenbank und können unnötige Datenübertragungen zwischen Datenbank und Anwendungsserver vermeiden.

2019-08-22 13_50_12-berechnungen_SQLScript

Allerdings können Sie auch Ihren SQL Code so gestalten, dass die Programme sehr langsam laufen. Daher stellen wir in diesem Artikel bewährte Tipps vor, um eine hohe SQLScript Performance zu erreichen.

Datenvolumen reduzieren

Eine hohe Performance ist eher erreichbar, wenn man mit einer kleinen Datenmenge arbeitet. Schränken Sie daher das Datenvolumen möglichst früh ein und selektieren Sie nur die Daten, die Sie wirklich brauchen. Ein Paar einfach zu folgende Regeln unterstützen Sie dabei:

Spalten in der SELECT Anweisung limitieren

Gewöhnen Sie sich an, die Spalten einer Tabelle immer explizit zu selektieren. Anstatt also einfach alles auszuwählen, wie in der folgenden Anweisung …

SELECT * FROM Customers;

… sollten die benötigten Spalten in die Anweisung aufnehmen:

SELECT

    CustomerName,

    City

FROM

    Customers;

 

Präzise WHERE Klauseln

Neben der expliziten Auswahl der Spalten sollten Sie auch immer die WHERE Klausel in Ihre SELECT Anweisungen integrieren. Diese wird zum Filtern der Daten verwendet. So werden nur die Datensätze extrahiert, die eine bestimmte Bedingung erfüllen. Denn oft wird für die Berechnungen nur eine Teilmenge aller vorhandenen Daten benötigt.

SELECT

    CustomerName,

    City

FROM

    Customers

WHERE

    Country='Germany';

Beachten Sie bitte, dass die HAVING Klausel nicht dieselbe Wirkung hat. Während die WHERE Klausel die Datenmenge bei der Selektion reduziert, bildet die HAVING Klausel einen Filter auf die bereits gruppierten und aggregierten Daten. Daher kann die HAVING Klausel nicht zur Performanceverbesserung eingesetzt werden.

Mandanten definieren

Wenn Sie zuvor mit ABAP gearbeitet haben, kümmern Sie sich nicht weiter um den Mandanten, da dieser in OpenSQL implizit ausgewählt wurde. Bei SQLScript dagegen müssen Sie den gewünschten Mandanten immer explizit definieren.

Indem Sie die Daten anderer Mandanten ausfiltern, steigern Sie die Performance. Dies gilt vor allem bei Joins. Falls der Mandant nicht definiert wird, wird beim Ergebnis das kartesische Produkt aller Mandanten verwendet.


Steigern Sie die Leistung Ihres BW mit SQLScript

SAP SQLScript Whitepaper


Wechsel zwischen Row und Column Engine vermeiden

Bei der Verarbeitung von SQLScript Abfragen verwendet die SAP HANA verschiedene Engines. Grundsätzlich kann man zwischen Row (Zeilen) Engine und Column (Spalten) Engine unterscheiden. Diese sind auf verschiedene Aufgaben spezialisiert. Um eine möglichst hohe Leistung zu erreichen, sollten Sie es vermeiden, in Ihrem Code zwischen den Engines zu wechseln.

So findet die zeilenweise Verarbeitung, zum Beispiel im Falle einer Window Funktion, in der Row Engine statt. Dagegen werden die Joins, Aggregationen und Berechnungen in der Column Engine ausgeführt. Wenn bei der Ausführung einer Abfrage zwischen den Engines gewechselt werden muss, müssen die Daten materialisiert werden. Dies geht zu Lasten der Performance.

Deklarative Anweisungen verwenden

Genauso wie den Wechsel zwischen Row und Column Engine sollten Sie den Wechsel zwischen deklarativen und imperativen Anweisungen vermeiden. Dies liegt daran, dass nur deklarative Anweisungen von SAP HANA optimiert werden können. Daher sollten Sie diese bevorzugt verwenden und imperative Anweisungen vermeiden.

Worin unterscheiden sich deklarative und imperative Anweisungen? Bei deklarativen Anweisungen sagen Sie dem System, welche Daten Sie gerne hätten. Das System findet selbstständig den besten Weg, um Sie mit den Daten zu versorgen. Bei imperativen Anweisungen dagegen sagen Sie ausdrücklich, wie das System die Daten liefern soll. Allerdings beschränkt dieses “Micromanagement” auch das Potential des Systems, die Ausführung zu optimieren.

Zu deklarativen Anweisungen zählen SELECT, JOIN, WHERE sowie Klauseln wie WITH, GROUP BY, HAVING, ORDER BY und auch die vordefinierten Funktionen wie MAP. Imperative Anweisungen umfassen FOR und WHILE LOOP sowie IF ELSE Verzweigungen.

Keine DML Anweisungen in Schleifen

Während Schleifen generell schlecht für Performance sind, kann es noch schlimmer machen, indem man Data Manipulation Language (DML) Anweisungen innerhalb der Schleifen ausführt. Dazu zählen alle Anweisungen, die Daten in Tabellen lesen oder ändern. Zum Beispiel SELECT, INSERT, UPDATE oder DELETE.

Statt Daten innerhalb der Schleifen einzufügen oder zu löschen, versuchen Sie nach Möglichkeit, die Anpassungen zu bündeln und dann mit einer einzigen Anweisung auszuführen.

Skalare Funktionen vermeiden

Im Gegensatz zur Tabellenfunktion liefert die skalare Funktion einen skalaren (d. h. einen einzelnen) Wert zurück. Grundsätzlich schneiden die skalaren Funktionen bei der Performance schlechter ab. Die schlechte Performance kann vor allem bei großen Datenmengen zum Schein kommen. Vor der Produktivsetzung sollten Sie daher einen Performancetest mit ausreichend großer Datenmenge ausführen.

Darüber hinaus sollten Sie aus Performancegründen keine SELECT Abfragen in skalaren Funktionen ausführen. Diese werden sehr oft ausgeführt, was zur Lasten der Performance geht. Beachten Sie bitte, dass auch Zugriffe auf die DUMMY Tabelle darunter fallen.

Wenn Ihre skalare Funktion bei konstanten Eingabeparametern immer dasselbe Ergebnis liefert, können Sie mit dem Schlüsselwort DETERMINISTIC die Pufferung einschalten. Dieses wird nach der Definition der Parameter angegeben. Die Pufferung ist vor allem bei Funktionen mit binären Ergebnissen sinnvoll. Wenn Sie unterschiedliche Ergebnisse erwarten, sollte DETERMINISTIC nicht verwendet werden, da wegen dem Caching die Performance unter Umständen sogar schlechter sein kann.

Unser Fazit - SQLScript Performance

Nun kennen Sie die typischen Fallstricke und wie Sie diese vermeiden können. Halten Sie sich an unsere Richtlinien und holen Sie das meiste aus Ihren SQLScript Programmen heraus!

Haben Sie Fragen zu SAP HANA SQLScript? Versuchen Sie das nötige Know-How in Ihrer Abteilung aufzubauen oder benötigen Sie Unterstützung bei einer konkreten Fragestellung? Wir helfen Ihnen gerne dabei. Fordern Sie noch heute ein unverbindliches Beratungsangebot an!

Erfahren Sie mehr über  SAP HANA SQLScript

, ,

avatar

Sebastian Uhlig

Sebastian berät seit 2001 Unternehmen verschiedener Branchen zu SAP BI Lösungen im In- und Ausland und deckt den Bereich der Anforderungsaufnahme bis zur Realisierung komplexer Lösungen ab. Er hat Erfahrung in der Leitung von Projektteams und ist Architekt des Produktes NextTables. Privat fährt er Mountainbike und sieht sich gerne American Football Spiele an.

Sie haben eine Frage zum Blog?
Fragen Sie Sebastian Uhlig

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge