Verwaltung der Netzinfrastruktur
SQL-Anweisungsoptimierung
Beim Design einer Softwarelösung und bei der Bewertung von Optimierungsmaßnahmen sollten Sie sich vor Augen halten, dass unterschiedliche Kommunikationen oder Prozesse auf unterschiedlichen Zeitskalen ablaufen. Abbildung 1.6 stellt dies schematisch dar. Auf der schnellsten Zeitskala laufen Anfragen im lokalen Hauptspeicher innerhalb des Datenbank- oder Applikationsserver-Kernels – z. B. bei Suchvorgängen in Tabellen oder Sortierungen. Als Dauer für einen Zugriff ist mit einer Zeit von 0,1 Mikrosekunden (μs) zu rechnen, Zugriffe auf die Prozessor-Caches sind sogar noch schneller. Um etwa zwei Zehnerpotenzen langsamer (10 μs) sind Zugriffe von einem ABAP- oder Java-Programm auf ein Objekt, das sich im Hauptspeicher des Applikationsservers befindet. Wiederum auf einer anderen Zeitskala spielen sich SQL-Anfragen von Anwendungsprogrammen auf die Datenbank ab. Wenn sich das Ergebnis der Anfrage bereits im Hauptspeicher befindet, ist hier mit Zeiten im Bereich von 1 Millisekunde (ms) zu rechnen. Muss von der Festplatte gelesen werden, liegen die Zeiten bei bis zu 10 ms. Auf der langsamsten Zeitskala laufen Anfragen zwischen dem Server und dem Rechner eines Endbenutzers ab. Hier müssen Sie in einem WAN oder Mobilfunknetz mit einer Dauer in der Größenordnung von 100ms rechnen.
Die Entscheidung zur Auslagerung einer Aufgabe oder Leistung sollte nicht nur unter Betrachtung von Kostenaspekten, sondern auch durch die Beurteilung der Wettbewerbsdifferenzierung und strategischen Bedeutung getroffen werden. Merkmale zur Beschreibung der Kosten sind die Spezifität der Aufgabe und die Prägung durch Stückkostendegression, d.h. sinkende Kosten bei steigender Anzahl der Aufgabe bzw. Leistung. Von strategischer Bedeutung sind vor allem diejenigen Aufgaben und Leistungen, die durch konkurrierende Unternehmen nur schwer zu imitieren sind. In Abbildung 4 werden die strategische Bedeutung und die Kostenvorteile gegenübergestellt, um damit zu grundsätzlich wertenden Aussagen bzgl. der Sinnhaftigkeit des Outsourcings für bestimmte IT-Aufgaben und IT-Leistungen zu gelangen. Ergänzend hierzu, wie durch die Empfehlung [A2] bereits erörtert, lohnt sich in der Folge die Aufstellung eines Kriterienkatalogs zur Bewertung und detaillierten Betrachtung bestimmter Merkmale der Anwendung oder Services. Ein beispielhafter Kriterienkatalog kann der Masterarbeit unter Kapitel 9.6 entnommen werden. Abbildung 4: Entscheidungsmatrix für die Auslagerung von IT-Aufgaben DIE ENTSCHEIDUNG ZUR AUSLAGERUNG EINER AUFGABE ODER LEISTUNG SOLLTE NICHT NUR UNTER BETRACHTUNG VON KOSTENASPEKTEN, SONDERN AUCH DURCH DIE BEURTEILUNG DER WETTBEWERBSDIFFERENZIERUNG UND STRATEGISCHEN BEDEUTUNG GETROFFEN WERDEN.
ENTSCHEIDUNG FÜR EIGENERSTELLUNG ODER
Alle Datenbanksysteme, mit denen das SAP-System arbeitet, verwenden einen kostenbasierten Optimierer (Cost-based Optimizer). Daher müssen regelmäßig Statistiken über die Größen von Tabellen und Indizes erstellt werden, die der Optimierer benötigt, um die richtigen Zugriffspläne für SQL-Anweisungen zu erstellen. Diese Analysen müssen durch den Administrator periodisch gestartet werden. Fehlen diese Statistiken oder sind sie veraltet, berechnet der Optimierer ineffektive Zugriffspfade, die zu massiven Performanceproblemen führen können. SAP HANA erstellt die Statistiken automatisch, hier sind keine manuellen Aktivitäten nötig.
Nach dem Hinzufügen von Java Stack (die Anwendungen, die in J2EE, BSP, JSP, etc entwickelt werden) wurde der Sicherheitsstandard für Geschäftsprozesse erhöht. Sowohl der ABAP- als auch der Java-Stack können von einer Plattform aus überwacht werden. Netweaver unterstützt Standardprotokolle wie HTTP, SMTP, XML, SOAP, SSO, WEBDAV, WSDL, WMLSSO, SSL, X.509 und das Unicode-Format (Darstellung der Textverarbeitung).
Tools wie "Shortcut for SAP Systems" ergänzen fehlende Funktionen im Bereich der SAP Basis.
In vielen Unternehmen, ist das SAP-System der Dreh- und Angelpunkt des Geschäftsalltags.
Der Workprozess-Übersicht entnehmen Sie u. a. den Namen des laufenden ABAP-Programms und des zugehörigen Benutzers.