Anfang des Inhaltsbereichs

Hintergrunddokumentation Welche Zugriffe gehen direkt auf die Datenbank  Dokument im Navigationsbaum lokalisieren

Für das Programmieren von Zugriffen auf gepufferte Tabellen ist es wichtig zu wissen, welche Zugriffe aus dem Puffer lesen und welche Zugriffe stets direkt auf die Datenbank gehen.

Die folgenden Zugriffe gehen immer am Puffer vorbei direkt auf die Datenbank:

      SELECT... BYPASSING BUFFER

      SELECT FOR UPDATE

      SELECT mit Aggregatfunktion, z.B. COUNT, MIN, MAX, SUM, AVG

      SELECT DISTINCT

      SELECT... WHERE... IS NULL

      ORDER BY (mit Ausnahme von PRIMARY KEY)

Bei generischer Pufferung gehen zusätzlich alle SELECT-Anweisungen ohne vollständige Angabe des generischen Schlüssels direkt auf die Datenbank. Bei generischer Pufferung können also nur Zugriffe unter Angabe des vollständigen generischen Schlüssels aus dem Puffer befriedigt werden.

Bei Pufferung von Einzelsätzen geht zusätzlich jede SELECT-Anweisung ohne den Zusatz SINGLE direkt auf die Datenbank. Dies gilt auch, wenn in der SELECT-Anweisung der vollständige Schlüssel spezifiziert ist. Bei Pufferung von Einzelsätzen können also nur Zugriffe mit SELECT SINGLE aus dem Puffer befriedigt werden.

Natürlich gehen auch alle Zugriffe mit Native SQL (EXEC SQL) am Puffer vorbei direkt auf die Datenbank. Solche Zugriffe sollten auf gepufferte Tabellen unbedingt vermieden werden. Erstens gehen lesende Zugriffe immer an den Tabellenpuffern vorbei. Zweitens werden ändernde Zugriffe vom SAP-System nicht bemerkt, da hier keine Einträge in die Synchronisationstabelle gemacht werden (siehe Synchronisation der lokalen Puffer). Damit können Inkonsistenzen zwischen dem Datenbestand in den Puffern der Applikationsserver und auf der Datenbank entstehen.

 

 

Ende des Inhaltsbereichs