Ermitteln Engpässe
SYSTEMÄNDERBARKEIT UND MANDANTENEINSTELLUNGEN
Als Skalierbarkeit eines Programms bezeichnet man die Abhängigkeit der Laufzeit eines Programms von der Datenmenge. Viele Operationen sind linear von der Datenmenge abhängig (t = O(n)), d. h., die Laufzeit steigt linear mit der Datenmenge an. Beispiele dafür sind Datenbankselektionen in großen Tabellen ohne oder mit ungeeigneter Indexunterstützung und Schleifen über interne Tabellen im Programm. Lineare Skalierbarkeit ist für die Bearbeitung mittlerer Datenmengen akzeptabel. Wenn sie bei Programmen, die große Datenmengen bearbeiten sollen, nicht vermieden werden kann, muss über Parallelisierung nachgedacht werden. Besser als eine lineare Skalierbarkeit sind für die Performance natürlich konstante Laufzeiten (t = O(1)) oder eine logarithmische Abhängigkeit (t = O(log n)). Logarithmische Abhängigkeiten treten z. B. bei Datenbankselektionen in großen Tabellen mit optimaler Indexunterstützung oder bei Leseoperationen in internen Tabellen mit binärer Suche auf. Da die Logarithmusfunktion nur sehr langsam ansteigt, ist in der Praxis zwischen konstanten und logarithmisch ansteigenden Laufzeiten nicht zu unterscheiden. Inakzeptabel für die Bearbeitung mittlerer und großer Datenmengen sind quadratische Abhängigkeiten (t = O(n × n)) und alles, was darüber hinausgeht. Allerdings können Probleme mit quadratischer Abhängigkeit durch intelligente Programmierung in der Regel auf Abhängigkeiten der Art t = O(n × log n) zurückgeführt werden. Ein Beispiel ist das Vergleichen zweier Tabellen, die beide mit der Ordnung n wachsen. Ein Vergleich der unsortierten Tabellen würde zu einer quadratischen Abhängigkeit führen, ein Vergleich mit sortierten Tabellen zur Abhängigkeit t = O(n × log n). Da die Logarithmusfunktion nur sehr langsam ansteigt, ist in der Praxis zwischen einem Ansteigen t = O(n × log n) und einem linearen Ansteigen nicht zu unterscheiden.
Der CodeProfiler verhindert, dass qualitativ schlechter Code oder Programme mit Sicherheitslücken überhaupt in eine produktive SAP-Systemlandschaft gelangen. Deshalb ist es wichtig, den CodeProfiler über den gesamten Lebenszyklus einer Software einzusetzen. Bereits bei der Programmierung hilft der CodeProfiler dem Entwickler bei der Identifikation und Korrektur von Fehlern und Schwachstellen in der SAP-Landschaft. Der CodeProfiler sorgt automatisch dafür, dass nur „sauberer“ Code in das jeweils nächste Level (Entwicklungssystem -> Testsystem -> Qualitätssicherungssystem -> Produktivsystem) transportiert wird. Dabei kann der CodeProfiler auch für regelmäßige Review-Zyklen eingesetzt werden.
Technologische Beratung SAP
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.
Wenn sich ein Prozess im Zustand hält befindet, liefert das Feld Info Hält die Ursache. Die Beschreibungen der einzelnen Haltegründe finden Sie in der Hilfe zu diesem Feld. Im Prinzip ist es kein Problem, wenn sich einzelne Prozesse kurzzeitig im Status hält befinden. Übersteigt die Zahl der aus dem gleichen Grund haltenden Prozesse jedoch die 20 %-Marke oder befinden sich einzelne Prozesse lange Zeit in diesem Zustand, sollte das Problem detaillierter analysiert werden. Gerade bei haltenden Workprozessen ist oft ein einziger, inperformant oder gar fehlerhaft arbeitender Workprozess die Ursache dafür, dass in einer Kettenreaktion auch andere Workprozesse zum Halten gezwungen werden. Den fehlerhaft arbeitenden Prozess finden Sie anhand des Feldes Dauer. Typischerweise kann man annehmen, dass der Prozess mit der längsten Laufzeit das Problem verursacht hat. Oft kann das akute Problem dadurch beseitigt werden, dass der fehlerhafte Workprozess manuell beendet wird.
Tools wie "Shortcut for SAP Systems" ergänzen fehlende Funktionen im Bereich der SAP Basis.
Der dritte Speicherbereich, in dem Benutzerkontexte abgelegt werden können, ist der SAP Heap Memory.
Eine manuelle Prüfung ist zwar möglich, jedoch sehr zeitaufwendig, da die notwendigen Regularieren gelesen, interpretiert und technisch umgesetzt werden müssen.