Show TOC

 Analyse einer Beispiel-SQL-DateiLocate this document in the navigation structure

Wenn Sie eine SQL-Trace-Datei für eine Anwendung anlegen, sehen Sie genau, wie das System Datenbankoperationen handhabt. In dieser Beispielanwendung liest ein Report Sätze in der ABAP Dictionary-Tabelle SFLIGHT mit ABAP-Open-SQL-Anweisungen und verändert sie später. Da die Tabelle SFLIGHT nicht gepuffert ist, muss das System zunächst auf die Datenbank zugreifen, um die Sätze zu besorgen. In den folgenden Abschnitten wird die Datei aus der Beispielanwendung analysiert.

Lesezugriff

Das erste Bild der SQL-Trace-Datei zeigt jede gemessene Datenbankanweisung aus der Anwendung an. In der Trace-Datei wird Zeitpunkt und Dauer der Anweisung aufgezeichnet. Die an der Anweisung beteiligte ABAP Dictionary-Tabelle wird ebenfalls aufgelistet.

Eine Trace-Datei für einen Lesezugriff auf die Tabelle SFLIGHT könnte so aussehen:

 

Das System hat verschiedene Datenbankoperationen gemessen, die am Lesezugriff auf die Tabelle SFLIGHT beteiligt waren.

Operation Funktion

PREPARE

Bereitet die OPEN-Anweisung vor und bestimmt die Zugriffsmethode. Da ein aktiver Cursor mit der Nummer 18 im Cursor-Cache des Work-Prozesses zur Verfügung steht, führt das System keine DECLARE-Operation durch. Das System muß jedoch die SELECT-Anweisung vorbereiten, mit der die Tabelle SFLIGHT gelesen wird.

Das System versieht das Feld 'MANDT' und 'CARRID' in der SELECT-Anweisung zu diesem Zeitpunkt nicht mit einem Wert, sondern weist ihm eine datenbankspezifische Markierung zu.

OPEN

Öffnet den Cursor und spezifiziert das Selektionsergebnis, indem die Selektionsfelder mit Werten versehen werden. In diesem Beispiel erhält das Feld 'MANDT' den Wert '000' und das Feld 'CARRID' den Wert 'LH'. Die OPEN-Operation erzeugt dann einen Bestand eingelesener Datensätze.

FETCH

Bewegt den Cursor über den von der Operation OPEN angelegten Datenbestand. Die Array-Größe, die neben den FETCH-Daten angezeigt wird, bedeutet, daß das System Pakete von maximal 392 Sätzen gleichzeitig in den gepufferten Bereich übertragen kann. Dieser Platz wird auf dem Anwendungs-Server für die Tabelle SFLIGHT angelegt.

Im obigen Beispiel holen die FETCH-Operationen die maximale Anzahl von Sätzen aus dem Datenbestand. Dann werden diese Sätze an die Programmschnittstelle übergeben.

 

Schreibzugriff

Eine Muster-SQL-Datei, die eine Datenbankanweisung analysiert, die Daten in der Tabelle D010SINF verändert, könnte so aussehen:

Das Beispiel zeigt, wie das System neue Sätze in die Tabelle einfügt (INSERT). Wie im ersten Beispiel, in dem das System nur einen Lesezugriff ausführte, muss das System die Datenbankoperationen, die Sätze auf der Datenbank verändern, vorbereiten (PREPARE). Die PREPARE-Operation geht den anderen Operationen voran.