Performanceproblem bei Eigenentwicklungen vermeiden
Freiformerkennung und Dokumentcheck
Basis umfasst eine Reihe von Middleware-Programmen und Tools von SAP. Basis ist für den reibungslosen Betrieb des SAP-Basis-Systems und damit etwa für R/3 beziehungsweise SAP ERP zuständig. SAP stellt damit die zugrundeliegende Basis (daher der Name) zur Verfügung, die es verschiedenen SAP-Anwendungen ermöglicht, interoperabel und portabel über Betriebssysteme und Datenbanken hinweg zu sein.
Über den in den SAP NetWeaver AS integrierten Internet Transaction Server (ITS) können Sie – bis auf wenige Ausnahmen – SAP-GUI-Transaktionen und Reports im Webbrowser nutzen. Das zweite Programmiermodell ist das der Business Server Pages (BSP) und deren Weiterentwicklung zu Web Dynpro ABAP, in dem mit ABAP als Programmiersprache HTML-Seiten dynamisch generiert werden. Technisch hat dieses Programmiermodell den Vorteil, dass keine weitere Softwarekomponente installiert werden muss; Business Server Pages bzw. Web-Dynpro-ABAP-Seiten werden direkt in den »normalen« SAP-Applikationsinstanzen generiert. Ein Beispiel für die Nutzung dieser Technologie ist SAP Customer Relationship Management (SAP CRM) ab Version 5.0.
ARCHITEKTURRICHTLINIEN MITGESTALTEN
Als ich in den frühen 1990er Jahren meine Karriere mit der Administration von SAP ERP auf Oracle begann, erforderte der Betrieb einer Datenbank weitaus mehr Wissen. Ein Oracle-Administrationsexperte mit einem Jahrzehnt Erfahrung verstand vielleicht nur etwa 5 % dessen, was die Datenbank erforderte.
Wenn Sie mehr zum Thema SAP Basis wissen möchten, besuchen Sie die Webseite www.sap-corner.de.
In der SAP-Onlinehilfe zur ABAP-Programmierumgebung und in der ABAP-Laufzeitumgebung (Transaktionscode SAT) finden Sie unter Tipps und Tricks ausführliche Informationen zur performanten ABAP-Programmierung, anhand der Sie sich mit den dort vorgestellten Codebeispielen vertraut machen sollten. In der Praxis gibt es immer wieder drei Programmierfehler, die zu einem hohen Hauptspeicher- bzw. CPU-Bedarf von Programmen führen: Fehlende REFRESH- bzw. FREE-Anweisungen - Mit den ABAP-Anweisungen REFRESH und FREE werden interne Tabellen gelöscht, und der allokierte Hauptspeicher wird freigegeben. Fehlen diese Anweisungen, werden unnötig Ressourcen blockiert, und die ausgeführten Operationen (READ oder LOOP) benötigen unnötig viel Zeit. Ineffizientes Lesen in großen internen Tabellen - Die ABAP-Anweisung READ TABLE ... WITH KEY ... erlaubt, in internen Tabellen zu suchen. Verwenden Sie diese Anweisung bei einer Standardtabelle ohne weiteren Zusatz, erfolgt die Suche sequenziell. Dies ist bei großen Tabellen ein aufwendiger Vorgang. Die Performance von Suchzugriffen wird wesentlich verbessert, wenn mit dem Zusatz ... BINARY SEARCH mittels binärer Suche gelesen wird. Dazu muss die Tabelle allerdings sortiert sein (siehe ABAP-Hilfe zur Anweisung READ TABLE). Die Performance von Operationen auf großen Tabellen optimieren Sie z. B. durch sortierte Tabellen (SORTED TABLE) bzw. Hash-Tabellen (HASHED TABLE). Wird ein READ-Befehl auf einer sortierten Tabelle ausgeführt, verwendet der ABAP-Prozessor automatisch eine binäre Suche. Wichtig ist, dass die Schlüsselfelder, die zur Suche verwendet werden, den Sortierkriterien der Tabelle entsprechen. Der Suchaufwand steigt bei einer sortierten Tabelle nur logarithmisch mit der Größe der Tabelle an. Konstante Zugriffskosten liegen bei Hash-Tabellen vor, falls die ABAP-Anweisung READ TABLE ... WITH TABLE KEY verwendet wird. Ein effizienter Zugriff auf Hash-Tabellen ist aber nur mit Angabe des vollständigen Schlüssels möglich! Geschachtelter Loop - Geschachtelte Loops werden häufig bei der Verarbeitung von abhängigen Tabellen verwendet (z. B. Kopf- und Positionsdaten). Handelt es sich bei HEADER und POSITION um Standardtabellen, loopt der ABAP-Prozessor für jeden Eintrag in der Tabelle HEADER über alle Einträge in der Tabelle POSITION und prüft für alle Einträge, ob die WHERE-Bedingung erfüllt ist. Dies ist insbesondere dann sehr zeitaufwendig, wenn die Tabellen HEADER und POSITION sehr viele Einträge enthalten. Verwendet man hingegen Tabellen vom Typ SORTED, ermittelt der ABAP-Prozessor die zu bearbeitenden Daten mit binärer Suche und iteriert nur über die Bereiche, die der WHERE-Bedingung genügen. Die Sortierung bringt allerdings nur Vorteile, wenn die WHERE-Bedingung die ersten Felder des Sortierschlüssels enthält.
Verwenden Sie "Shortcut for SAP Systems", um viele Aufgaben in der SAP Basis einfacher und schneller zu erledigen.
Erzeugung schwacher Passwort-Hashes verhindern Die Generierung der unsicheren Hashwerte kann unterbunden werden, indem der Profilparameter login/password_downwards_compatibility auf den Wert 0 gesetzt wird.
Der Message-Server (in Abbildung 1.5 nicht dargestellt) speichert zentral Informationen über Verfügbarkeit und Auslastung der einzelnen Instanzen (des AS ABAP und AS Java) und steht daher mit den Instanzen und auch mit dem SAP Web Dispatcher in ständiger Verbindung.
Ein Zettelkasten, in dem schnell Daten aller Art abgelegt und wiedergefunden werden können. Das verspricht Scribble Papers. Anfangs sieht das Programm sehr spartanisch aus. Aber wenn erst einmal eine kleine Struktur vorhanden ist, erkennt man die große Flexibilität dieses kleinen Helfers.