Show TOC Anfang des Inhaltsbereichs

Übersichtsdokumentation Pufferung  Dokument im Navigationsbaum lokalisieren

Das SAP-System sorgt dafür, dass der Datenaustausch zwischen dem SAP-System und dem Datenbanksystem möglichst performant erfolgt. Dies wird erreicht durch:

·        Die Pufferung von Tabellen. Das Programm greift auf Daten aus dem Puffer des Anwendungs-Servers des Systems zu.

·        Die Pufferung von Datenbankanforderungen. Erst wenn eine OPEN-SQL-Anweisung es erfordert, werden einzelne Sätze in der Datenbank gelesen bzw. der Datenbank übergeben.

Bei der Analyse der Trace-Sätze ist der Pufferungsmechanismus entsprechend zu berücksichtigen.

Pufferung von Tabellen

Da Tabellen teilweise oder vollständig gepuffert sein können (siehe auch Datenbanktabellen puffern.), führt ein OPEN-SQL-Befehl nur dann zu einem Datenbankzugriff, wenn dieser SQL-Befehl nicht über den Tabellenpuffer realisiert werden kann. Es entspricht also nicht jedem OPEN-SQL-Befehl ein Befehl oder eine Befehlsfolge im SQL-Trace. Jeder SQL-Befehl andererseits, den Sie in der Trace-Datei vorfinden, wurde auch tatsächlich an die Datenbank gesendet und dort ausgeführt.

Pufferung von Datenbankanforderungen

Um die Anzahl der relativ laufzeitintensiven PREPARE-Aufrufe so klein wie möglich zu halten, hält jeder Work-Prozess eines Anwendungs-Servers eine bestimmte Anzahl von bereits übersetzten SQL-Anweisungen in einem eigens dafür vorgesehenen Puffer (Standard ist 250 Anweisungen).

Soll nun eine bestimmte OPEN SQL-Anweisung ausgeführt werden, wird zunächst geprüft, ob sich diese Anweisung bereits im “Statement-Cache” befindet. Ist dies der Fall, wird die Anweisung unmittelbar ausgeführt, d.h. es wird ein REOPEN (SELECT) bzw. ein REEXEC (INSERT, UPDATE, DELETE) abgesetzt.

Befindet sich die Anweisung nicht im Puffer, muss dies zunächst durch eine entsprechende PREPARE-Operation für das anschließende OPEN/EXEC vorbereitet werden. Der Puffer wird nach einem LRU-Algorithmus (“least recently used”) verwaltet, d.h. bei Bedarf werden diejenigen Anweisungen aus dem Puffer verdrängt, die am seltensten ausgeführt werden. Häufig benutzte Anweisungen müssen somit in der Regel nur einmal vorbereitet werden.

Ein Anwendungs-Server puffert die Anweisungen DECLARE, PREPARE, OPEN und EXEC im Cursor-Cache eines Work-Prozesses. Sobald das System einmal einen Cursor für eine DECLARE-Anweisung geöffnet hat, kann es also diesen Cursor im selben Work-Prozess immer wieder verwenden.

 

Ende des Inhaltsbereichs