Für das Programmieren von Zugriffen auf gepufferte Tabellen müssen Sie 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
● SELECT mit der Klausel GROUP BY oder HAVING
● SELECT mit Subqueries oder Joins
● 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 nur Zugriffe unter Angabe des vollständigen generischen Schlüssels aus dem Puffer verwendet werden.
Bei Pufferung von Einzelsätzen geht jede SELECT-Anweisung, die nicht den vollständigen Schlüssel angibt, direkt auf die Datenbank.
Alle Zugriffe mit Native SQL (EXEC SQL) gehen am Puffer vorbei direkt auf die Datenbank. Solche Zugriffe müssen 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.