Anfang des InhaltsbereichsPerformance-Hinweise Dokument im Navigationsbaum lokalisieren

Die Performance von ABAP-Anwendungsprogrammen wird im wesentlichen von Datenbank-Zugriffen bestimmt. Es lohnt sich daher die SQL-Anweisungen einer genaueren Analyse zu unterziehen. Behilflich dabei sind die Werkzeuge Performance Trace und Laufzeitanalyse der ABAP Workbench im Menu Test. Insbesondere zeigt der SQL Trace im Performance Trace, wo welche Teile von Open SQL-Anweisungen in welcher Zeit verarbeitet werden.

Um den Einfluß von SQL-Anweisungen auf die Laufzeit von ABAP-Programmen zu verstehen, muß die zugrundeliegende Architektur betrachtet werden. Die Workprozesse eines Applikationsservers sind für die gesamte Laufzeit des R/3-Systems als Benutzer (Clients) an das Datenbanksystem (Server) angemeldet. Die Verbindung zwischen Client und Daten bildet das Datenbank-Management-System (DBMS).

DBMS-Architektur

Der Aufbau eines DBMS ist im allgemeinen:

Diese Grafik wird im zugehörigen Text erklärt

In dieser Architektur sind vier Punkte für Performance-Betrachtungen wichtig:

Das Lesen und Schreiben auf Datenbank Files stellt den größten Engpaß dar. Ein gut konfiguriertes System wird ausschließlich von der I/O- Zugriffsgeschwindigkeit bestimmt.

Bei Symmetrischen Multi-Prozessoren ist dies nicht von Belang.

Unkritisch für kleinere Datenvolumen, aber ein Engpaß, wenn große Datenmengen transferiert werden sollen.

Der Optimizer

Jedes Datenbanksystem verfügt über einen Optimizer. Die Aufgabe des Optimizers ist es, den Ausführungsplan für ein SQL-Statement zu erstellen (z.B. festlegen, ob ein Index- oder Table Scan durchgeführt wird). Es gibt zwei Ausprägungen von Optimizern:

Rule-based

Ein Rule-Based Optimizer analysiert die Struktur einer SQL-Anweisung (hauptsächlich SELECT und die WHERE-Klausel ohne Werte) und den Index der Tabelle(n). Über einen Bewertungsmechanismus entscheidet der Optimizer welches Vorgehen er anwendet, um den Befehl auszuführen.

Cost-based

Ein Cost-Based Optimizer betrachtet zusätzlich einige Werte in der WHERE-Klausel und die Statistiken der Tabellen. Die Statistiken enthalten Low- und High Values der Felder oder sogar ein Histogramm, das die Verteilung der Daten in der Tabelle enthält. Der Cost-Based Optimizer nutzt mehr Informationen über die Tabellen und führt daher meistens zu einem schnelleren Zugriff. Ein Nachteil beim Cost-Based Optimizer ist, daß die Statistiken periodisch auf den neuesten Stand gebracht werden müssen.

Verwendung

ORACLE setzt bis Rel 7.1 den Rule-based Optimizer ein. Ab Rel. 7.2 den Cost-based Optimizer (R/3 Release 4.0A). Alle anderen Datenbanksysteme haben einen Cost-based Optimizer.

Regeln für die performante Open SQl-Programmierung

Mit Blick auf oben dargestellte Architektur, ergeben sich fünf Regeln, die möglichst unabhängig vom verwendeten Datenbanksystem zu einer performanten Ausrührung von ABAP-Programmen mit Datenbankzugriffen führen. Die folgenden Regeln gelten insbesondere für folgende Datenbanksysteme:

Für folgende Datenbanksysteme treffen sie nicht oder nur teilweise zu:

Die folgenden Abschnitte erläutern die fünf Regeln.

Treffermenge klein halten

Übertragene Datenmenge klein halten

Zahl der Zugriffe klein halten

Suchaufwand klein halten

Datenbanklast klein halten

Ende des Inhaltsbereichs