SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Boost your ABAP
Infos für performanceoptimierte ABAP Entwicklung
Föß Boost your ABAP
Johann Fößleitner
Senior Consultant at Cadaxo
eMail: johann.foessleitner@cadaxo.com
Twitter: @foessleitnerj
Beratungsschwerpunkte
• Konzeption & Management von Entwicklungsprojekten
• Qualitymanagement & Performanceoptimierung
• Webanwendungen auf Basis von SAPUI5, BSP oder Web Dynpro
for ABAP
• SAP CRM Entwicklungen (WebUI, Middleware, … )
Dieter Boost your ABAP
Dieter Schadler
Senior Consultant at Cadaxo
eMail: dieter.schadler@cadaxo.com
Beratungsschwerpunkte
• Konzeption/Management von Entwicklungsprojekten
• Web Dynpro for ABAP + Floorplan Manager
• Formularentwicklung (SAPscript, Smartforms, Adobe Forms)
• Qualitymanagement & Performanceoptimierung
Boost your ABAP
Skills OptimizeDetect
Boost your ABAP
Skills OptimizeDetect
ABAP Technical Skills Boost your ABAP
ABAP JSON / XMLJavascript
HTML5
ODataSAP HANA
JQuery CSS Web IDE
ABAP for Eclipse
Web Dynpro for ABAP
Floorplan Manager
SQL Script
CDS Views
SAP Gateway
ABAP Channels
ABAP SQL Expressions SQL Monitor
Code Inspector
BOPF
AMDP
SAPUI5
Open SQL
RegexABAP Expressions
BOR Laufzeitanalyse
BRF/BRF+
Shared Objects
BADIs
Switch Framework
Adobe Document Services
BSP
WebServices
App Architecture – Beispiel SAP Fiori / SAP HANA Boost your ABAP
SAP AS ABAP 7.4
Browser
SAP HANA
Fiori App
ICF
Gateway Push Channel
ABAP Implementation
CDS Views AMDP
Design Development
Javascript, HTML5,
SAPUI5, jQuery, CSS ..
Pushchannel & WebSockets
für die UI Kommunikation
Implementierung von
Gateway Services
ABAP Managed Database
Procedures
Definition, Generierung
von SAP Gateway
Services (oData)
ABAP CDS Views für
schnellere Zugriffe
Ein paar Soft Skills Boost your ABAP
 Kommunikation, Netzwerken
◦ Wichtigkeit wird oft unterschätzt
◦ Virtuell oder im „echten“ Leben
◦ Intern und über „Unternehmensgrenzen“ hinweg
◦ Geben ( … und auch Nehmen)
 Power von Teams
◦ Softwareentwicklung ist keine Solotätigkeit
◦ Andere Denkansätze oder Ideen können dem eigenen Projekt
einen „Turboboost“ verleihen
 Gute Selbsteinschätzung
◦ Kenne ich mich, meine Stärken und Schwächen?
◦ Wo ist mein „Knopf“ der mich motiviert?
◦ …
Online Netzwerke Boost your ABAP
 Online Netzwerke
◦ http://sdn.sap.com
◦ http://influence.sap.com
◦ http://developer.sap.com
◦ http://www.dsag.de
◦ http://www.xing.com
◦ http://www.linkedin.com
◦ http://www.twitter.com
◦ http://www.abapforum.com
◦ …
SAP bzw. SAP Community Events Boost your ABAP
◦ SAP CodeJam http://scn.sap.com/community/events/codejam
◦ SAP InnoJam http://scn.sap.com/community/events/innojam
◦ SAP Inside Track http://scn.sap.com/community/events/inside-track
◦ SAP TechEd http://events.sap.com/teched-global/en/home
SAP CodeJam
SAP InnoJam
SAP Inside Track
SAP TechEd
SAP Press Bücher Boost your ABAP
 SAP Press - https://www.rheinwerk-verlag.de/sap/
Weitere Online Ressourcen Boost your ABAP
 Weitere Online Ressourcen
◦ http://help.sap.com
◦ http://training.sap.com
◦ http://open.sap.com
◦ https://sapui5.hana.ondemand.com
◦ https://experience.sap.com
◦ http://sapinsider.wispubs.com/Magazines/SAPinsider
◦ http://www.tricktresor.de/
◦ http://zevolving.com
◦ http://www.cadaxo.com/blog/
ABAP Dokumentation Boost your ABAP
 ABAP – Schlüsselwortdokumenation
◦ http://help.sap.com/abapdocu_740/de/
◦ Transaktionscode: ABAPDOCU
Clean Code Boost your ABAP
 Schon mal von Clean Code gehört?
◦ Clean Code ist einfach und sollte sich wie eine Geschichte lesen.
◦ Clean Code kann ohne Probleme erweitert bzw. angepasst werden.
◦ Man erkennt einen Clean Code wenn man ihn sieht!
 Kann man Clean Code im ABAP anwenden?
◦ Natürlich!
 ABAP Programming Guidelines, modern Style, …
 General Rules?
◦ ABAP Objects verwenden
◦ Obsolete Statements nicht mehr verwenden
◦ Tools zum Prüfen verwenden
 Syntaxcheck, Erweiterter Syntaxcheck und Code Inspector
Boost your ABAP
Skills OptimizeDetect
Tools Boost your ABAP
Statische ABAP
Checks
Analysetools in
ABAP
Tools auf DB- Ebene Tools von
Drittanbietern
- SQL Cockpit
- Virtual Forge
- Syntaxprüfung
- Erweiterte Syntax-
prüfung
- Code Inspector
- ABAP Test Cockpit
- DB abh. Tools- Performance Trace
- Laufzeitanalyse
- Coverage Analyzer
- SQL Monitor
- SQL Perf. Tuning List
- Einzelstatistik
- Laufzeitprüfungs-
monitor
ABAP Laufzeitanalyse Boost your ABAP
 Mit der ABAP Laufzeitanalyse können Laufzeiten für Einzelobjekte oder Teile
davon analysiert werden
◦ Bietet sich für CPU intensive Einzelobjekte an
◦ Aggregation der Analysedaten können im Reiter „Dauer + Art“ eingestellt werden
 Voll, pro Aufrufstelle, keine Aggregation. Nur bei „keiner Aggregation“ stehen alle Analysefunktionen
(Gruppen, OO-Hitlisten, … )
◦ Transaktionscode: SAT (ehem. SE30)
Coverage Analyzer Boost your ABAP
 Der Coverage Analyzer ist ein Tool, mit dem die Verarbeitung von ABAPs
systemweit analysiert werden kann.
◦ Ermittlung von Programmteilen welche selten bzw. nie aufgerufen werden
◦ Ermittlung von Programmteilen welche sehr oft aufgerufen werden und sich daher für
performanceverbessernde Aktivitäten eignen könnten
◦ Transaktionscode: SCOV
Memory Inspector Boost your ABAP
 Der Memory Inspector dient der Analyse von Speicherabzügen
◦ Ein Speicherabzug kann jederzeit entweder über /HMUSA oder über System ->
Hilfsmittel -> Speicheranalyse -> Speicherabzug erzeugt werden
◦ Eine weitere Möglichkeit zu Erzeugung eines Speicherabzuges besteht darin, die ABAP
Methode CL_ABAP_MEMORY_UTILITIES zu verwenden
◦ Deltaanzeige von mehren Speicherabzügen ist möglich
◦ Memory Analyse und die Erzeugung eines Snapshots ist auch im Debugger möglich
◦ Transaktionscode: S_MEMORY_INSPECTOR
Code Inspector Boost your ABAP
 Der Code Inspector führt verschiedene statische Prüfungen durch
◦ Es können einzelne Objekte oder viele Objekte (ein Paket, Z*, … ) geprüft werden
◦ Geprüft wird beispielsweise:
 Performancekritische Statements, „totes“ Coding, fehlende Indices bei Datenbankzugriffen,
Namenskonventionen, …
◦ Meldungen können mit Pseudokommentaren (z.B. #EC CL_BYPASS) unterdrückt werden.
◦ Transaktionscode: SCI
ABAP Test Cockpit Boost your ABAP
 Das ABAP Test Cockpit wird für statische Codechecks auf Basis des Code
Inspectors verwendet
◦ xxxxx
ABAP Test Cockpit Boost your ABAP
 Mit dem Runtime Check Monitor können mögliche SQL Probleme durch FOR
ALL ENTRIES und fehlende ORDER BY Zusätze analysiert werden
◦ Leere FOR ALL ENTRIES Tabellen führen zu einem Komplettlesen der Tabelle
◦ Die Datenbank garantiert ohne ORDER BY keinen sortierten Result
◦ Transaktionscode: SRTCM
SQL Monitor Boost your ABAP
 Der SQL Monitor liefert Performance-Daten für alle SQL Operationen in einem
SAP System
◦ Welche SQL Operationen/Tabellenzugriffe treten am häufigsten auf?
◦ Welche SQL Operationen/Tagellenzugriffe lesen oder schreiben die meisten Einträge?
◦ Auch für produktive Umgebungen gedacht
◦ Transaktionscode: SQLM
SQL Performance Tuning Worklist Boost your ABAP
 Die SQL Performance Tuning Worklist kombiniert statische Checks (Code
Inspector) mit Laufzeitdaten (SQL Monitor)
◦ Liefert eine priorisierte Worklist für potentielle Performanceverbesserungen
◦ Transaktionscode: SWLT
Verbesserungswerte SQL Statements effizient finden Boost your ABAP
Statische
Checks
Laufzeit-
daten
Code Inspector /
ABAP Test Cockpit
SQL Performance
Tuning Worklist
SQL Monitor /
Coverage Analyzer
Boost your ABAP
 SQL Cockpit – So nah waren Sie ihren Daten noch nie
◦ SQL Cockpit ist das einzigartige
Datenbank-Abfrage- und Vergleichs-
tool für ihr SAP System!
◦ Der SQL Editor bietet Templates und
Code Completion zur schnellen
Erstellung von SQL Abfragen.
Cadaxo SQL Cockpit
Boost your ABAP
Skills OptimizeDetect
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
ABAP Optimierungsbereiche
Verbuchung
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
Verbuchung
Die goldenen SQL Regeln Boost your ABAP
Die goldenen SQL Regeln
#1 Ergebnisliste klein halten
#2 Menge der zu übertragenden Daten klein halten
#3 Anzahl der Datenübertragungen klein halten
#4 Suchkosten reduzieren
#5 Datenbankzugriffe reduzieren
Die goldenen SQL Regeln Boost your ABAP
#1 Ergebnisliste klein halten
 Kein SELECT … CHECK/EXIT… ENDSELECT verwenden
 WHERE Klausel so gut wie möglich spezifizieren
Die goldenen SQL Regeln Boost your ABAP
#2 Übertragungsmenge gering halten
 Kein SELECT * verwenden
 Bei UPDATEs mit SET arbeiten
 Aggregatsfunktionen verwenden (COUNT, SUM, … )
Die goldenen SQL Regeln Boost your ABAP
#3 Datentransfer gering halten
 JOINS und Subselects einsetzen
 SELECT FOR ALL ENTRIES verwenden
 INSERT FROM TABLE verwenden
Die goldenen SQL Regeln Boost your ABAP
#4 Suchkosten reduzieren
 Sekundärindices erstellen, verwenden
 Indexwahl prüfen und ggf. optimieren
◦ Indexdesign!!
 Positive WHERE Bedingungen formulieren
Die goldenen SQL Regeln Boost your ABAP
#5 Datenbankzugriffe reduzieren
 Redundante Lesezugriffe vermeiden
 Datenzugriffe puffern
 Sortierung von Ergebnismengen im ABAP vornehmen
Die goldenen SQL Regeln Boost your ABAP
Die goldenen SQL Regeln
#1 Ergebnisliste klein halten
#2 Menge der zu übertragenden Daten klein halten
#3 Anzahl der Datenübertragungen klein halten
#4 Suchkosten reduzieren
#5 Datenbankzugriffe reduzieren
ABAP Code Pushdown Boost your ABAP
 Code Pushdown to the Database
◦ ABAP Open SQL Expressions
◦ ABAP Core Data Services (CDS Views)
◦ ABAP Managed Database Procedures (AMDP)1
1Die AMDP werden derzeit nur für SAP HANA unterstützt
ABAP Code Pushdown Boost your ABAP
 SQL Limitierungen in ABAP vor 7.40
◦ Kein UNION bzw. UNION ALL
◦ Eingeschränkte JOIN Möglichkeiten
◦ Keine Expressions
◦ Kein Casting
◦ …
SQL 92 Standard
Advanced Open SQL
Seit 7.40 SP5/SP8
Open SQL
CDS View Boost your ABAP
 CDS Core Data Services
◦ Nächste Generation von DB-View Definitionen – Mit DDL
◦ Pflege über ABAP in Eclipse, volle Integration in Open SQL, Transport, …
◦ Vorteile zu SE11 DB Views:
 Outer Joins, Kombination von komplexen Join Bedingungen, UNION und UNION ALL möglich,
Viewhierarchien (View ruft View ruft View … ), Berechtigungsprüfungen auf Tabelleninhalte, …
◦ Viele eingebaute Funktionen:
Konvertierungs-
funktionen
CURRENCY_CONV
UNIT_CONV
DECIMAL_SHIFT
Zeichenketten-
funktionen
CONCAT
LPAD
REPLACE
SUBSTRING
Numerische Funktionen
ABS
CEIL
DIV
DIVISION
FLOOR
…
Zeit/Datum Funktionen
DATS_IS_VALID
TIMS_IS_VALID
DATS_ADD_DAYS
…
Coalesce-Funktion
COALESCE
Neu ab
7.50
 Ausführliche Online Dokumentation
◦ http://help.sap.com/abapdocu_740/en/index.htm?file=abencds.htm
ABAP Open SQL Expressions Boost your ABAP
 SQL Expressions
◦ Fallunterscheidung mit CASE
◦ Arithmetische Operationen wie +, -, *, /, CEIL, …
◦ Verkettung von Spalten mit &&
◦ Typkonvertierung mit CAST für FLTP Felder
◦ COALESCE Funktion
◦ Festwerte
◦ Build In Funktionen wie bei CDS Views werden nach und nach folgen
 Ausführliche Online Dokumentation
◦ https://help.sap.com/abapdocu_740/en/abapsql_expr.htm
CDS Views vs. Open SQL Expressions Boost your ABAP
• Re-Use Scenarien
• Views können verschachtelt
werden!!
• CDS Features
• ASSOCIATION, UNION, UNION ALL,
Mengen bzw. Währungs
Umrechnungen
CDS Views Open SQL
• Einmalverwendungen
• FOR ALL ENTRIES
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
Verbuchung
Buffering - Möglichkeiten Boost your ABAP
Userabhängig Userübergreifend
- Funktionsgruppe
- Globale Daten im TOP Include
- Daten bleiben innerhalb der
Transaktion verfügbar
z.B. MARA_SINGLE_READ
- SET/GET PARAMETER
- Individuell ausprogrammiert
- Tabellenpufferung über SE11
- Shared Memory
- Speicher am Applikationsserver
- EXPORT/IMPORT FROM …
- Shared Object
Ohne Shared Object Boost your ABAP
User
Session A
User
Session B
User
Session C
DB
Shared Object
Mit Shared Object Boost your ABAP
User
Session A
User
Session B
User
Session C
DB
Shared Objects Boost your ABAP
 Shared Objects Infos
◦ Sind Teil des Shared Memory
◦ Können in Gebiete und Instanzen geteilt werden
◦ Gleichzeitige Lesezugriffe möglich
◦ Keine gleichzeitigen Änderungszugriffe auf eine Instanz
◦ Auto-Build kann implementiert werden
 Ausführliche Online Dokumetation
◦ http://help.sap.com/saphelp_erp60_sp/helpdata/de/c5/85634e53d422409f0975aa
9a551297/content.htm
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
Verbuchung
Sekundär Keys Boost your ABAP
 Drei Typen von internen Tabellen
◦ Standard Tabelle
◦ Sorted Tabelle
◦ Hashed Tabelle
 Alle Tabellen haben einen primary table key
... UNIQUE | NON-UNIQUE KEY cols …
 Performance
◦ Zugriffe mit Key (READ TABLE … WITH KEY … )
sind für sortierte und hashed Tabellen optimal
◦ READ BINARY SEARCH auf
(sortierte) Standard Tabellen ist „o.k.“
Zeit
Tabellengröße
Interne Tabellen
Table types Standard table Sorted table Hash table
Key access Table scan Binary search Hash function
Growth
Access costs for n entries
Linearly
O(n)
Logarithmically
O(log(n))
Constant
O(1)
Access Mainly by index Mainly by key Only by key
Uniqueness kind Non-unique Unique | Non-unique unique
Access with table key
(*Read table or Table expressions)
slow efficiently fast
Access key ≠ table key
(*Read table or Table expressions)
slow If key = prefix of table key:
efficiently
Otherwise: slow
slow
Usage of secondary keys Non-unique Unique | Non-unique Unique | Non-unique
Boost your ABAP
Sekundär Keys Boost your ABAP
 Sekundär Keys können für alle Tabellentypen definiert werden
◦ Entweder SORTED oder HASHED Keys
◦ SORTED Keys können UNIQUE oder NON-UNIQUE sein, sekundäre HASHED Keys
sind immer UNIQUE
 Syntaxprüfung zeigt mögliche Probleme auf
◦ Doppelte (gleiche) sekundäre Keys
◦ Ähnliche sekundäre Keys werden vorgeschlagen
Sekundär Keys Boost your ABAP
 Secondary Keys für interne Tabellen
◦ Können Zugriffe auf interne Tabelle wesentlich beschleunigen
◦ Bitte beachten:
 Speicherverbrauch steigt
 Änderungen (Updates) auf Tabellen mit secondary Keys benötigen länger
◦ Unique secondary Keys werden sofort geändert
◦ Non-unique werden erst aktualisiert wenn der Key erstmals verwendet wird
◦ Generell
 Sinnvoll für große interne Tabellen welche selten geändert werden
 Ausführliche Online Dokumetation
◦ http://help.sap.com/abapdocu_702/en/abenitab_key_secondary.htm
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
Verbuchung
Boost your ABAP
Workprozess 1
Workprozess 2
Workprozess 3
Workprozess 4
Workprozess 5
Workprozess 6
Workprozess 721 3 4 5 6 7 8 9
Parallelisierung
Boost your ABAP
Workprozess 1
Workprozess 2
Workprozess 3
Workprozess 4
Workprozess 5
Workprozess 6
Workprozess 7
2
1
3
4
5
6
7 8
9
Parallelisierung
Boost your ABAP
Workprozess 1
Workprozess 2
Workprozess 3
Workprozess 4
Workprozess 5
Workprozess 6
Workprozess 7
2
1
3
4
5
6
7 8
9
Parallelisierung
Boost your ABAP
 Wie kann in ABAP parallelisiert werden
◦ „Altmodisch“ mit einem Report und mehreren Jobs
 Gute Selektionsbedingungen vorausgesetzt
◦ Transaktionaler RFC – tRFC
◦ Queued RFC – qRFC
◦ bgRFC (background RFC)
 Transactional und Queued
◦ Ausprogrammiert als Daemon
 CALL FUNCTION … STARTING NEW TASK ….
Boost your ABAP
 Parallelisierung mit bgRFCs
◦ Transaktionale bgRFCs oder tRFCs (bgRFCs ersetzten tRFCs und qRFCs )
 Die Verarbeitung einer Unit erfolgt in einer undefinierten Sortierung.
 Eine Unit kann mehrere Funktionsbausteine beinhalten, deren Verarbeitungsreihenfolge sortiert
erfolgt.
◦ Queue bgRFCs oder qRFCs
 Die Verarbeitung erfolgt in „Exactly Once In Order“ (EOIO)
 Parallelisierung mit tRFC/qRFC
◦ tRFC und qRFC stehen nach wie vor zur Verfügung und können weiterhin zur Parallelisierung
verwendet werden.
 Ausführliche Online Dokumentation zu bgRFCs, qRFCs
◦ http://help.sap.com/erp2005_ehp_04/helpdata/de/b5/1051421310c153e10000000a1550b0/content.htm
◦ http://help.sap.com/saphelp_srm40/helpdata/de/f0/225c3c60065627e10000000a114084/content.htm
◦ https://help.sap.com/saphelp_nwpi71/helpdata/en/22/042578488911d189490000e829fbbd/content.htm
Boost your ABAP
SQL
Buffering
Interne Tabellen
Parallelisierung
Verbuchung
Verbuchung Boost your ABAP
Asynchrone Verbuchung
Lokale Verbuchung
Verbuchung Boost your ABAP
 Asynchrone Verbuchung
◦ Verbuchung erfolgt über Verbuchungsbausteine (via VBDATA, VBLOG, … )
◦ Nach einem COMMIT WORK wird der aktuelle Workprozess wieder freigegeben, der
Verbuchungsprozess wird in einem eigenen Prozess gestartet
◦ Hinweis Synchrone Verbuchung:
 Mit COMMIT WORK AND WAIT wartet der aktuelle Dialogprozess bis die Verbuchung im
Verbuchungsprozess abgeschlossen wurde.
◦ Verwendung typischerweise in Dialoganwendungen
Verbuchung Boost your ABAP
 Lokale Verbuchung
◦ Mit SET UPDATE TASK LOCAL wird die lokale Verbuchung aktiviert
◦ Nach einem COMMIT WORK werden die Verbuchungsbausteine mit dem aktuellen Prozess
verbucht
◦ Dadurch werden die zentralen Datenbankprozesse geschont
◦ Achtung: Abgebrochene Verbuchungen gehen hier natürlich verloren
If you want to stay in touch …
https://twitter.com/foessleitnerj
https://www.linkedin.com/in/johann-fößleitner-a9851b2a
https://www.xing.com/profile/johann_foessleitner
johann.foessleitner@cadaxo.com
See you again!
Thank you for participating!
https://www.linkedin.com/in/yyy
https://www.xing.com/profile/xxx
dieter.schadler@cadaxo.com
http://com.slideshare.net/cadaxogmbh
https://twitter.com/cadaxo
https://www.linkedin.com/company/cadaxo-gmbh
http://www.youtube.com/CadaxoGmbH
https://www.facebook.com/CadaxoGmbH
https://www.xing.com/companies/cadaxogmbhCadaxo GmbH
Stubenring 18/5a| 1010 Vienna, Austria
office@cadaxo.com
www.cadaxo.com

Weitere ähnliche Inhalte

Was ist angesagt?

Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPCadaxo GmbH
 
Webinar ABAP 7.51 Releaseinformationen
Webinar ABAP 7.51 ReleaseinformationenWebinar ABAP 7.51 Releaseinformationen
Webinar ABAP 7.51 ReleaseinformationenCadaxo GmbH
 
Webinar - ABAP Releasenotes 7.53/7.54
Webinar - ABAP Releasenotes 7.53/7.54Webinar - ABAP Releasenotes 7.53/7.54
Webinar - ABAP Releasenotes 7.53/7.54Cadaxo GmbH
 
Webinar ABAP Managed Database Procedures
Webinar ABAP Managed Database ProceduresWebinar ABAP Managed Database Procedures
Webinar ABAP Managed Database ProceduresCadaxo GmbH
 
Webinar SAP/ABAP und Microsoft
Webinar  SAP/ABAP und MicrosoftWebinar  SAP/ABAP und Microsoft
Webinar SAP/ABAP und MicrosoftCadaxo GmbH
 
Webinar - SAP Gateway
Webinar  - SAP GatewayWebinar  - SAP Gateway
Webinar - SAP GatewayCadaxo GmbH
 
Liquid - Templating on Rails
Liquid - Templating on RailsLiquid - Templating on Rails
Liquid - Templating on Railsgearwheeldotnet
 

Was ist angesagt? (7)

Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAP
 
Webinar ABAP 7.51 Releaseinformationen
Webinar ABAP 7.51 ReleaseinformationenWebinar ABAP 7.51 Releaseinformationen
Webinar ABAP 7.51 Releaseinformationen
 
Webinar - ABAP Releasenotes 7.53/7.54
Webinar - ABAP Releasenotes 7.53/7.54Webinar - ABAP Releasenotes 7.53/7.54
Webinar - ABAP Releasenotes 7.53/7.54
 
Webinar ABAP Managed Database Procedures
Webinar ABAP Managed Database ProceduresWebinar ABAP Managed Database Procedures
Webinar ABAP Managed Database Procedures
 
Webinar SAP/ABAP und Microsoft
Webinar  SAP/ABAP und MicrosoftWebinar  SAP/ABAP und Microsoft
Webinar SAP/ABAP und Microsoft
 
Webinar - SAP Gateway
Webinar  - SAP GatewayWebinar  - SAP Gateway
Webinar - SAP Gateway
 
Liquid - Templating on Rails
Liquid - Templating on RailsLiquid - Templating on Rails
Liquid - Templating on Rails
 

Andere mochten auch

Andere mochten auch (19)

Managmentaufgaben bei der Einführung von SAP
Managmentaufgaben bei der Einführung von SAPManagmentaufgaben bei der Einführung von SAP
Managmentaufgaben bei der Einführung von SAP
 
SQL Cockpit - Releasenotes 3.0
SQL Cockpit - Releasenotes 3.0SQL Cockpit - Releasenotes 3.0
SQL Cockpit - Releasenotes 3.0
 
Abap 7 02 new features - new string functions
Abap 7 02   new features - new string functionsAbap 7 02   new features - new string functions
Abap 7 02 new features - new string functions
 
Lec12
Lec12Lec12
Lec12
 
INFORMATICA GRUPO 2
INFORMATICA GRUPO 2INFORMATICA GRUPO 2
INFORMATICA GRUPO 2
 
Preparatius Cavalcada
Preparatius CavalcadaPreparatius Cavalcada
Preparatius Cavalcada
 
Linkedin
LinkedinLinkedin
Linkedin
 
el relieve de España
el relieve de Españael relieve de España
el relieve de España
 
Presentacion 4
Presentacion 4Presentacion 4
Presentacion 4
 
herramientas informáticas
herramientas informáticas herramientas informáticas
herramientas informáticas
 
Presentación1
Presentación1Presentación1
Presentación1
 
Veiller sur twitter
Veiller sur twitterVeiller sur twitter
Veiller sur twitter
 
Departs retraite ess_2011
Departs retraite ess_2011Departs retraite ess_2011
Departs retraite ess_2011
 
Crêpes
CrêpesCrêpes
Crêpes
 
Ntic
NticNtic
Ntic
 
Formations ess 2012
Formations ess 2012Formations ess 2012
Formations ess 2012
 
La presentation de Saumur
La presentation de SaumurLa presentation de Saumur
La presentation de Saumur
 
Lec6
Lec6Lec6
Lec6
 
PROYECTO INFORMATICA GRUPO 8
PROYECTO INFORMATICA GRUPO 8PROYECTO INFORMATICA GRUPO 8
PROYECTO INFORMATICA GRUPO 8
 

Ähnlich wie Webinar - Boost your ABAP

Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS ViewsCadaxo GmbH
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)NETWAYS
 
SQL Server 2016 and SharePoint 2016 - Lars PLatzdasch - SQL Konferenz 2016
SQL Server 2016 and SharePoint 2016  - Lars PLatzdasch - SQL Konferenz 2016SQL Server 2016 and SharePoint 2016  - Lars PLatzdasch - SQL Konferenz 2016
SQL Server 2016 and SharePoint 2016 - Lars PLatzdasch - SQL Konferenz 2016Lars Platzdasch
 
Qualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfQualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfOliver Lemm
 
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS Summit
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS SummitEchtzeitanwendungen aus der Cloud - Partnervortrag vom AWS Summit
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS SummitAWS Germany
 
Google Analytics & Seo @seosixt wiesn 2014
Google Analytics & Seo @seosixt wiesn 2014Google Analytics & Seo @seosixt wiesn 2014
Google Analytics & Seo @seosixt wiesn 2014121WATT GmbH
 
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015Marcel Franke
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performanceglembotzky
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)NETWAYS
 
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...EPI_USE_Labs_Germany
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftChristian Drumm
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsUlrich Schmidt
 
Positionierung LEADSExplorer Deutsch
Positionierung LEADSExplorer DeutschPositionierung LEADSExplorer Deutsch
Positionierung LEADSExplorer Deutschjfparker
 
Making AdWords Scripts Scale
Making AdWords Scripts ScaleMaking AdWords Scripts Scale
Making AdWords Scripts ScalePeakAce
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Peter Ramm
 
SQL Server Monitoring - Piloten fliegen auch nicht blind
SQL Server Monitoring - Piloten fliegen auch nicht blindSQL Server Monitoring - Piloten fliegen auch nicht blind
SQL Server Monitoring - Piloten fliegen auch nicht blindAndre Essing
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaPeter Ramm
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationSamuel Zürcher
 

Ähnlich wie Webinar - Boost your ABAP (20)

Webinar - ABAP CDS Views
Webinar - ABAP CDS ViewsWebinar - ABAP CDS Views
Webinar - ABAP CDS Views
 
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
Warum Monitoring und warum Icinga 2 (Webinar vom 04.12.2013)
 
SQL Server 2016 and SharePoint 2016 - Lars PLatzdasch - SQL Konferenz 2016
SQL Server 2016 and SharePoint 2016  - Lars PLatzdasch - SQL Konferenz 2016SQL Server 2016 and SharePoint 2016  - Lars PLatzdasch - SQL Konferenz 2016
SQL Server 2016 and SharePoint 2016 - Lars PLatzdasch - SQL Konferenz 2016
 
Qualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfQualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdf
 
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS Summit
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS SummitEchtzeitanwendungen aus der Cloud - Partnervortrag vom AWS Summit
Echtzeitanwendungen aus der Cloud - Partnervortrag vom AWS Summit
 
Google Analytics & Seo @seosixt wiesn 2014
Google Analytics & Seo @seosixt wiesn 2014Google Analytics & Seo @seosixt wiesn 2014
Google Analytics & Seo @seosixt wiesn 2014
 
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
 
Skalierung & Performance
Skalierung & PerformanceSkalierung & Performance
Skalierung & Performance
 
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
Logstash: Windows und Linux Logmanagement (Webinar vom 07.11.2014)
 
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
Sap hcm reportingtool zur erstellung von queries in nur 10 minuten (query man...
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
 
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebAppsHTML5 Offline - Fallstricke für mobile Webseiten und WebApps
HTML5 Offline - Fallstricke für mobile Webseiten und WebApps
 
Positionierung LEADSExplorer Deutsch
Positionierung LEADSExplorer DeutschPositionierung LEADSExplorer Deutsch
Positionierung LEADSExplorer Deutsch
 
Making AdWords Scripts Scale
Making AdWords Scripts ScaleMaking AdWords Scripts Scale
Making AdWords Scripts Scale
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
SQL Server Monitoring - Piloten fliegen auch nicht blind
SQL Server Monitoring - Piloten fliegen auch nicht blindSQL Server Monitoring - Piloten fliegen auch nicht blind
SQL Server Monitoring - Piloten fliegen auch nicht blind
 
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für PanoramaOracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
 
Best Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL InstallationBest Practices SharePoint and SQL Installation
Best Practices SharePoint and SQL Installation
 

Webinar - Boost your ABAP

  • 1. Boost your ABAP Infos für performanceoptimierte ABAP Entwicklung
  • 2. Föß Boost your ABAP Johann Fößleitner Senior Consultant at Cadaxo eMail: johann.foessleitner@cadaxo.com Twitter: @foessleitnerj Beratungsschwerpunkte • Konzeption & Management von Entwicklungsprojekten • Qualitymanagement & Performanceoptimierung • Webanwendungen auf Basis von SAPUI5, BSP oder Web Dynpro for ABAP • SAP CRM Entwicklungen (WebUI, Middleware, … )
  • 3. Dieter Boost your ABAP Dieter Schadler Senior Consultant at Cadaxo eMail: dieter.schadler@cadaxo.com Beratungsschwerpunkte • Konzeption/Management von Entwicklungsprojekten • Web Dynpro for ABAP + Floorplan Manager • Formularentwicklung (SAPscript, Smartforms, Adobe Forms) • Qualitymanagement & Performanceoptimierung
  • 4. Boost your ABAP Skills OptimizeDetect
  • 5. Boost your ABAP Skills OptimizeDetect
  • 6. ABAP Technical Skills Boost your ABAP ABAP JSON / XMLJavascript HTML5 ODataSAP HANA JQuery CSS Web IDE ABAP for Eclipse Web Dynpro for ABAP Floorplan Manager SQL Script CDS Views SAP Gateway ABAP Channels ABAP SQL Expressions SQL Monitor Code Inspector BOPF AMDP SAPUI5 Open SQL RegexABAP Expressions BOR Laufzeitanalyse BRF/BRF+ Shared Objects BADIs Switch Framework Adobe Document Services BSP WebServices
  • 7. App Architecture – Beispiel SAP Fiori / SAP HANA Boost your ABAP SAP AS ABAP 7.4 Browser SAP HANA Fiori App ICF Gateway Push Channel ABAP Implementation CDS Views AMDP Design Development Javascript, HTML5, SAPUI5, jQuery, CSS .. Pushchannel & WebSockets für die UI Kommunikation Implementierung von Gateway Services ABAP Managed Database Procedures Definition, Generierung von SAP Gateway Services (oData) ABAP CDS Views für schnellere Zugriffe
  • 8. Ein paar Soft Skills Boost your ABAP  Kommunikation, Netzwerken ◦ Wichtigkeit wird oft unterschätzt ◦ Virtuell oder im „echten“ Leben ◦ Intern und über „Unternehmensgrenzen“ hinweg ◦ Geben ( … und auch Nehmen)  Power von Teams ◦ Softwareentwicklung ist keine Solotätigkeit ◦ Andere Denkansätze oder Ideen können dem eigenen Projekt einen „Turboboost“ verleihen  Gute Selbsteinschätzung ◦ Kenne ich mich, meine Stärken und Schwächen? ◦ Wo ist mein „Knopf“ der mich motiviert? ◦ …
  • 9. Online Netzwerke Boost your ABAP  Online Netzwerke ◦ http://sdn.sap.com ◦ http://influence.sap.com ◦ http://developer.sap.com ◦ http://www.dsag.de ◦ http://www.xing.com ◦ http://www.linkedin.com ◦ http://www.twitter.com ◦ http://www.abapforum.com ◦ …
  • 10. SAP bzw. SAP Community Events Boost your ABAP ◦ SAP CodeJam http://scn.sap.com/community/events/codejam ◦ SAP InnoJam http://scn.sap.com/community/events/innojam ◦ SAP Inside Track http://scn.sap.com/community/events/inside-track ◦ SAP TechEd http://events.sap.com/teched-global/en/home SAP CodeJam SAP InnoJam SAP Inside Track SAP TechEd
  • 11. SAP Press Bücher Boost your ABAP  SAP Press - https://www.rheinwerk-verlag.de/sap/
  • 12. Weitere Online Ressourcen Boost your ABAP  Weitere Online Ressourcen ◦ http://help.sap.com ◦ http://training.sap.com ◦ http://open.sap.com ◦ https://sapui5.hana.ondemand.com ◦ https://experience.sap.com ◦ http://sapinsider.wispubs.com/Magazines/SAPinsider ◦ http://www.tricktresor.de/ ◦ http://zevolving.com ◦ http://www.cadaxo.com/blog/
  • 13. ABAP Dokumentation Boost your ABAP  ABAP – Schlüsselwortdokumenation ◦ http://help.sap.com/abapdocu_740/de/ ◦ Transaktionscode: ABAPDOCU
  • 14. Clean Code Boost your ABAP  Schon mal von Clean Code gehört? ◦ Clean Code ist einfach und sollte sich wie eine Geschichte lesen. ◦ Clean Code kann ohne Probleme erweitert bzw. angepasst werden. ◦ Man erkennt einen Clean Code wenn man ihn sieht!  Kann man Clean Code im ABAP anwenden? ◦ Natürlich!  ABAP Programming Guidelines, modern Style, …  General Rules? ◦ ABAP Objects verwenden ◦ Obsolete Statements nicht mehr verwenden ◦ Tools zum Prüfen verwenden  Syntaxcheck, Erweiterter Syntaxcheck und Code Inspector
  • 15. Boost your ABAP Skills OptimizeDetect
  • 16. Tools Boost your ABAP Statische ABAP Checks Analysetools in ABAP Tools auf DB- Ebene Tools von Drittanbietern - SQL Cockpit - Virtual Forge - Syntaxprüfung - Erweiterte Syntax- prüfung - Code Inspector - ABAP Test Cockpit - DB abh. Tools- Performance Trace - Laufzeitanalyse - Coverage Analyzer - SQL Monitor - SQL Perf. Tuning List - Einzelstatistik - Laufzeitprüfungs- monitor
  • 17. ABAP Laufzeitanalyse Boost your ABAP  Mit der ABAP Laufzeitanalyse können Laufzeiten für Einzelobjekte oder Teile davon analysiert werden ◦ Bietet sich für CPU intensive Einzelobjekte an ◦ Aggregation der Analysedaten können im Reiter „Dauer + Art“ eingestellt werden  Voll, pro Aufrufstelle, keine Aggregation. Nur bei „keiner Aggregation“ stehen alle Analysefunktionen (Gruppen, OO-Hitlisten, … ) ◦ Transaktionscode: SAT (ehem. SE30)
  • 18. Coverage Analyzer Boost your ABAP  Der Coverage Analyzer ist ein Tool, mit dem die Verarbeitung von ABAPs systemweit analysiert werden kann. ◦ Ermittlung von Programmteilen welche selten bzw. nie aufgerufen werden ◦ Ermittlung von Programmteilen welche sehr oft aufgerufen werden und sich daher für performanceverbessernde Aktivitäten eignen könnten ◦ Transaktionscode: SCOV
  • 19. Memory Inspector Boost your ABAP  Der Memory Inspector dient der Analyse von Speicherabzügen ◦ Ein Speicherabzug kann jederzeit entweder über /HMUSA oder über System -> Hilfsmittel -> Speicheranalyse -> Speicherabzug erzeugt werden ◦ Eine weitere Möglichkeit zu Erzeugung eines Speicherabzuges besteht darin, die ABAP Methode CL_ABAP_MEMORY_UTILITIES zu verwenden ◦ Deltaanzeige von mehren Speicherabzügen ist möglich ◦ Memory Analyse und die Erzeugung eines Snapshots ist auch im Debugger möglich ◦ Transaktionscode: S_MEMORY_INSPECTOR
  • 20. Code Inspector Boost your ABAP  Der Code Inspector führt verschiedene statische Prüfungen durch ◦ Es können einzelne Objekte oder viele Objekte (ein Paket, Z*, … ) geprüft werden ◦ Geprüft wird beispielsweise:  Performancekritische Statements, „totes“ Coding, fehlende Indices bei Datenbankzugriffen, Namenskonventionen, … ◦ Meldungen können mit Pseudokommentaren (z.B. #EC CL_BYPASS) unterdrückt werden. ◦ Transaktionscode: SCI
  • 21. ABAP Test Cockpit Boost your ABAP  Das ABAP Test Cockpit wird für statische Codechecks auf Basis des Code Inspectors verwendet ◦ xxxxx
  • 22. ABAP Test Cockpit Boost your ABAP  Mit dem Runtime Check Monitor können mögliche SQL Probleme durch FOR ALL ENTRIES und fehlende ORDER BY Zusätze analysiert werden ◦ Leere FOR ALL ENTRIES Tabellen führen zu einem Komplettlesen der Tabelle ◦ Die Datenbank garantiert ohne ORDER BY keinen sortierten Result ◦ Transaktionscode: SRTCM
  • 23. SQL Monitor Boost your ABAP  Der SQL Monitor liefert Performance-Daten für alle SQL Operationen in einem SAP System ◦ Welche SQL Operationen/Tabellenzugriffe treten am häufigsten auf? ◦ Welche SQL Operationen/Tagellenzugriffe lesen oder schreiben die meisten Einträge? ◦ Auch für produktive Umgebungen gedacht ◦ Transaktionscode: SQLM
  • 24. SQL Performance Tuning Worklist Boost your ABAP  Die SQL Performance Tuning Worklist kombiniert statische Checks (Code Inspector) mit Laufzeitdaten (SQL Monitor) ◦ Liefert eine priorisierte Worklist für potentielle Performanceverbesserungen ◦ Transaktionscode: SWLT
  • 25. Verbesserungswerte SQL Statements effizient finden Boost your ABAP Statische Checks Laufzeit- daten Code Inspector / ABAP Test Cockpit SQL Performance Tuning Worklist SQL Monitor / Coverage Analyzer
  • 26. Boost your ABAP  SQL Cockpit – So nah waren Sie ihren Daten noch nie ◦ SQL Cockpit ist das einzigartige Datenbank-Abfrage- und Vergleichs- tool für ihr SAP System! ◦ Der SQL Editor bietet Templates und Code Completion zur schnellen Erstellung von SQL Abfragen. Cadaxo SQL Cockpit
  • 27. Boost your ABAP Skills OptimizeDetect
  • 28. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung ABAP Optimierungsbereiche Verbuchung
  • 29. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung Verbuchung
  • 30. Die goldenen SQL Regeln Boost your ABAP Die goldenen SQL Regeln #1 Ergebnisliste klein halten #2 Menge der zu übertragenden Daten klein halten #3 Anzahl der Datenübertragungen klein halten #4 Suchkosten reduzieren #5 Datenbankzugriffe reduzieren
  • 31. Die goldenen SQL Regeln Boost your ABAP #1 Ergebnisliste klein halten  Kein SELECT … CHECK/EXIT… ENDSELECT verwenden  WHERE Klausel so gut wie möglich spezifizieren
  • 32. Die goldenen SQL Regeln Boost your ABAP #2 Übertragungsmenge gering halten  Kein SELECT * verwenden  Bei UPDATEs mit SET arbeiten  Aggregatsfunktionen verwenden (COUNT, SUM, … )
  • 33. Die goldenen SQL Regeln Boost your ABAP #3 Datentransfer gering halten  JOINS und Subselects einsetzen  SELECT FOR ALL ENTRIES verwenden  INSERT FROM TABLE verwenden
  • 34. Die goldenen SQL Regeln Boost your ABAP #4 Suchkosten reduzieren  Sekundärindices erstellen, verwenden  Indexwahl prüfen und ggf. optimieren ◦ Indexdesign!!  Positive WHERE Bedingungen formulieren
  • 35. Die goldenen SQL Regeln Boost your ABAP #5 Datenbankzugriffe reduzieren  Redundante Lesezugriffe vermeiden  Datenzugriffe puffern  Sortierung von Ergebnismengen im ABAP vornehmen
  • 36. Die goldenen SQL Regeln Boost your ABAP Die goldenen SQL Regeln #1 Ergebnisliste klein halten #2 Menge der zu übertragenden Daten klein halten #3 Anzahl der Datenübertragungen klein halten #4 Suchkosten reduzieren #5 Datenbankzugriffe reduzieren
  • 37. ABAP Code Pushdown Boost your ABAP  Code Pushdown to the Database ◦ ABAP Open SQL Expressions ◦ ABAP Core Data Services (CDS Views) ◦ ABAP Managed Database Procedures (AMDP)1 1Die AMDP werden derzeit nur für SAP HANA unterstützt
  • 38. ABAP Code Pushdown Boost your ABAP  SQL Limitierungen in ABAP vor 7.40 ◦ Kein UNION bzw. UNION ALL ◦ Eingeschränkte JOIN Möglichkeiten ◦ Keine Expressions ◦ Kein Casting ◦ … SQL 92 Standard Advanced Open SQL Seit 7.40 SP5/SP8 Open SQL
  • 39. CDS View Boost your ABAP  CDS Core Data Services ◦ Nächste Generation von DB-View Definitionen – Mit DDL ◦ Pflege über ABAP in Eclipse, volle Integration in Open SQL, Transport, … ◦ Vorteile zu SE11 DB Views:  Outer Joins, Kombination von komplexen Join Bedingungen, UNION und UNION ALL möglich, Viewhierarchien (View ruft View ruft View … ), Berechtigungsprüfungen auf Tabelleninhalte, … ◦ Viele eingebaute Funktionen: Konvertierungs- funktionen CURRENCY_CONV UNIT_CONV DECIMAL_SHIFT Zeichenketten- funktionen CONCAT LPAD REPLACE SUBSTRING Numerische Funktionen ABS CEIL DIV DIVISION FLOOR … Zeit/Datum Funktionen DATS_IS_VALID TIMS_IS_VALID DATS_ADD_DAYS … Coalesce-Funktion COALESCE Neu ab 7.50  Ausführliche Online Dokumentation ◦ http://help.sap.com/abapdocu_740/en/index.htm?file=abencds.htm
  • 40. ABAP Open SQL Expressions Boost your ABAP  SQL Expressions ◦ Fallunterscheidung mit CASE ◦ Arithmetische Operationen wie +, -, *, /, CEIL, … ◦ Verkettung von Spalten mit && ◦ Typkonvertierung mit CAST für FLTP Felder ◦ COALESCE Funktion ◦ Festwerte ◦ Build In Funktionen wie bei CDS Views werden nach und nach folgen  Ausführliche Online Dokumentation ◦ https://help.sap.com/abapdocu_740/en/abapsql_expr.htm
  • 41. CDS Views vs. Open SQL Expressions Boost your ABAP • Re-Use Scenarien • Views können verschachtelt werden!! • CDS Features • ASSOCIATION, UNION, UNION ALL, Mengen bzw. Währungs Umrechnungen CDS Views Open SQL • Einmalverwendungen • FOR ALL ENTRIES
  • 42. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung Verbuchung
  • 43. Buffering - Möglichkeiten Boost your ABAP Userabhängig Userübergreifend - Funktionsgruppe - Globale Daten im TOP Include - Daten bleiben innerhalb der Transaktion verfügbar z.B. MARA_SINGLE_READ - SET/GET PARAMETER - Individuell ausprogrammiert - Tabellenpufferung über SE11 - Shared Memory - Speicher am Applikationsserver - EXPORT/IMPORT FROM … - Shared Object
  • 44. Ohne Shared Object Boost your ABAP User Session A User Session B User Session C DB
  • 45. Shared Object Mit Shared Object Boost your ABAP User Session A User Session B User Session C DB
  • 46. Shared Objects Boost your ABAP  Shared Objects Infos ◦ Sind Teil des Shared Memory ◦ Können in Gebiete und Instanzen geteilt werden ◦ Gleichzeitige Lesezugriffe möglich ◦ Keine gleichzeitigen Änderungszugriffe auf eine Instanz ◦ Auto-Build kann implementiert werden  Ausführliche Online Dokumetation ◦ http://help.sap.com/saphelp_erp60_sp/helpdata/de/c5/85634e53d422409f0975aa 9a551297/content.htm
  • 47. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung Verbuchung
  • 48. Sekundär Keys Boost your ABAP  Drei Typen von internen Tabellen ◦ Standard Tabelle ◦ Sorted Tabelle ◦ Hashed Tabelle  Alle Tabellen haben einen primary table key ... UNIQUE | NON-UNIQUE KEY cols …  Performance ◦ Zugriffe mit Key (READ TABLE … WITH KEY … ) sind für sortierte und hashed Tabellen optimal ◦ READ BINARY SEARCH auf (sortierte) Standard Tabellen ist „o.k.“ Zeit Tabellengröße
  • 49. Interne Tabellen Table types Standard table Sorted table Hash table Key access Table scan Binary search Hash function Growth Access costs for n entries Linearly O(n) Logarithmically O(log(n)) Constant O(1) Access Mainly by index Mainly by key Only by key Uniqueness kind Non-unique Unique | Non-unique unique Access with table key (*Read table or Table expressions) slow efficiently fast Access key ≠ table key (*Read table or Table expressions) slow If key = prefix of table key: efficiently Otherwise: slow slow Usage of secondary keys Non-unique Unique | Non-unique Unique | Non-unique Boost your ABAP
  • 50. Sekundär Keys Boost your ABAP  Sekundär Keys können für alle Tabellentypen definiert werden ◦ Entweder SORTED oder HASHED Keys ◦ SORTED Keys können UNIQUE oder NON-UNIQUE sein, sekundäre HASHED Keys sind immer UNIQUE  Syntaxprüfung zeigt mögliche Probleme auf ◦ Doppelte (gleiche) sekundäre Keys ◦ Ähnliche sekundäre Keys werden vorgeschlagen
  • 51. Sekundär Keys Boost your ABAP  Secondary Keys für interne Tabellen ◦ Können Zugriffe auf interne Tabelle wesentlich beschleunigen ◦ Bitte beachten:  Speicherverbrauch steigt  Änderungen (Updates) auf Tabellen mit secondary Keys benötigen länger ◦ Unique secondary Keys werden sofort geändert ◦ Non-unique werden erst aktualisiert wenn der Key erstmals verwendet wird ◦ Generell  Sinnvoll für große interne Tabellen welche selten geändert werden  Ausführliche Online Dokumetation ◦ http://help.sap.com/abapdocu_702/en/abenitab_key_secondary.htm
  • 52. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung Verbuchung
  • 53. Boost your ABAP Workprozess 1 Workprozess 2 Workprozess 3 Workprozess 4 Workprozess 5 Workprozess 6 Workprozess 721 3 4 5 6 7 8 9 Parallelisierung
  • 54. Boost your ABAP Workprozess 1 Workprozess 2 Workprozess 3 Workprozess 4 Workprozess 5 Workprozess 6 Workprozess 7 2 1 3 4 5 6 7 8 9 Parallelisierung
  • 55. Boost your ABAP Workprozess 1 Workprozess 2 Workprozess 3 Workprozess 4 Workprozess 5 Workprozess 6 Workprozess 7 2 1 3 4 5 6 7 8 9 Parallelisierung
  • 56. Boost your ABAP  Wie kann in ABAP parallelisiert werden ◦ „Altmodisch“ mit einem Report und mehreren Jobs  Gute Selektionsbedingungen vorausgesetzt ◦ Transaktionaler RFC – tRFC ◦ Queued RFC – qRFC ◦ bgRFC (background RFC)  Transactional und Queued ◦ Ausprogrammiert als Daemon  CALL FUNCTION … STARTING NEW TASK ….
  • 57. Boost your ABAP  Parallelisierung mit bgRFCs ◦ Transaktionale bgRFCs oder tRFCs (bgRFCs ersetzten tRFCs und qRFCs )  Die Verarbeitung einer Unit erfolgt in einer undefinierten Sortierung.  Eine Unit kann mehrere Funktionsbausteine beinhalten, deren Verarbeitungsreihenfolge sortiert erfolgt. ◦ Queue bgRFCs oder qRFCs  Die Verarbeitung erfolgt in „Exactly Once In Order“ (EOIO)  Parallelisierung mit tRFC/qRFC ◦ tRFC und qRFC stehen nach wie vor zur Verfügung und können weiterhin zur Parallelisierung verwendet werden.  Ausführliche Online Dokumentation zu bgRFCs, qRFCs ◦ http://help.sap.com/erp2005_ehp_04/helpdata/de/b5/1051421310c153e10000000a1550b0/content.htm ◦ http://help.sap.com/saphelp_srm40/helpdata/de/f0/225c3c60065627e10000000a114084/content.htm ◦ https://help.sap.com/saphelp_nwpi71/helpdata/en/22/042578488911d189490000e829fbbd/content.htm
  • 58. Boost your ABAP SQL Buffering Interne Tabellen Parallelisierung Verbuchung
  • 59. Verbuchung Boost your ABAP Asynchrone Verbuchung Lokale Verbuchung
  • 60. Verbuchung Boost your ABAP  Asynchrone Verbuchung ◦ Verbuchung erfolgt über Verbuchungsbausteine (via VBDATA, VBLOG, … ) ◦ Nach einem COMMIT WORK wird der aktuelle Workprozess wieder freigegeben, der Verbuchungsprozess wird in einem eigenen Prozess gestartet ◦ Hinweis Synchrone Verbuchung:  Mit COMMIT WORK AND WAIT wartet der aktuelle Dialogprozess bis die Verbuchung im Verbuchungsprozess abgeschlossen wurde. ◦ Verwendung typischerweise in Dialoganwendungen
  • 61. Verbuchung Boost your ABAP  Lokale Verbuchung ◦ Mit SET UPDATE TASK LOCAL wird die lokale Verbuchung aktiviert ◦ Nach einem COMMIT WORK werden die Verbuchungsbausteine mit dem aktuellen Prozess verbucht ◦ Dadurch werden die zentralen Datenbankprozesse geschont ◦ Achtung: Abgebrochene Verbuchungen gehen hier natürlich verloren
  • 62. If you want to stay in touch … https://twitter.com/foessleitnerj https://www.linkedin.com/in/johann-fößleitner-a9851b2a https://www.xing.com/profile/johann_foessleitner johann.foessleitner@cadaxo.com See you again! Thank you for participating! https://www.linkedin.com/in/yyy https://www.xing.com/profile/xxx dieter.schadler@cadaxo.com