Ansicht
Dokumentation

ABENBUFFER_RESTRICTIONS - BUFFER RESTRICTIONS

ABENBUFFER_RESTRICTIONS - BUFFER RESTRICTIONS

PERFORM Short Reference   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Einschränkungen

Grundsätzlich können nur transparente Tabellen gepuffert werden. Globale temporäre Tabellen können nicht gepuffert werden. Für die Schlüssellänge der Tabelle gibt es keine spezielle Einschränkung bezüglich der Pufferung, d.h. ein Schlüssel gepufferter Tabellen kann die erlaubten 900 Bytes ausschöpfen. Beim Datenbankzugriff über Native SQL und AMDP wird der Tabellenpuffer prinzipiell nicht verwendet.

Ändernde Zugriffe greifen direkt auf die Daten der Datenbanktabelle zu und bewirken eine asynchrone Puffersynchronisation. Nach einer Invalidierung eines Eintrags im Puffer durch eine ändernde Anweisung umgehen standardmäßig die nächsten fünf Lesezugriffe, die auf den geänderten Eintrag zugreifen wollen, den Puffer der aktuellen . Der nächste lesende Zugriff auf den geänderten Eintrag lädt diesen wieder in den Puffer und hebt damit dessen Invalidierung auf. Die Anzahl der Lesezugriffe, die den Puffer vor einem Nachladen umgehen, ist im Profilparameter zcsa/sync_reload_c festgelegt.

Da bestimmte Operationen nur auf der Datenbank und nicht im Tabellenpuffer ausgeführt werden können, ergeben sich die im Folgenden aufgeführten weiteren Einschränkungen für lesende Zugriffe. Wenn diese Einschränkungen nicht beachtet werden, umgehen lesende -Anweisungen implizit den Tabellenpuffer und greifen direkt auf die DDIC-Datenbanktabellen, DDIC-Views oder CDS-View-Entitäten.

  • Folgende lesende Zugriffe umgehen immer den Tabellenpuffer:
  • Verwendung von Subqueries und damit insbesondere der Anweisung WITH.

  • Lesender Zugriff auf eine Tabelle oder eine View, für die ein Vertreterobjekt definiert ist.

  • Ein über die Klasse CL_OSQL_REPLACE umgelenkter lesender Zugriff während eines Modultests.

  • darf es keine JOIN-Ausdrücke geben

  • darf die GROUP BY-Klausel nicht verwendet werden, was auch die HAVING-Klausel ausschließt

  • darf die ORDER BY nicht verwendet werden, wenn als Sortierschlüssel einzelne Spalten angegeben werden, und diese Spalten keine linksbündige Teilmenge des Primärschlüssels in der richtigen Reihenfolge sind oder wenn bei einer Spalte der Zusatz DESCENDING angegeben ist,

  • Beim Zugriff auf eine Tabelle bzw. View mit Einzelsatzpufferung müssen alle Schlüsselfelder des Primärschlüssels durch mit AND verknüpfte Gleichheitsbedingungen aufgeführt sein.

  • Beim Zugriff auf einen generisch gepufferten Bereich muss dieser vollständig über mit AND verknüpfte Gleichheitsbedingungen spezifiziert sein.

  • Auf der rechten Seite eines relationalen Ausdrucks, der zur Identifikation eines Einzelsatzes oder eines generisch gepufferten Bereichs dient, dürfen nur Hostvariablen oder Hostausdrücke verwendet werden. In anderen relationalen Ausdrücken einer Bedingung können in Vergleichen oder bei der Verwendung von BETWEEN auch Spalten angegeben werden, wenn beide Operanden numerisch aber nicht vom Typ DF16_DEC oder DF34_DEC sind, wenn beide Operanden zeichenartig sind, wenn beide Operanden vom Typ RAW der gleichen Länge sind.

  • Es darf keine Spalte mit einer anderen Spalte einer hinter FROM angegebenen Datenquelle verglichen werden

  • muss bei der Verwendung von FOR ALL ENTRIES beim Zugriff auf eine Tabelle bzw. View mit generischer Pufferung der generischen Bereich exakt spezifiziert werden und es darf nicht zu einer OR-Verknüpfung mehrerer generischer Bereiche kommen.

  • Die Variante der Operators IN mit einer Operandenliste auf der linken Seite darf nicht verwendet werden.

Hinweise

  • Die Umgehung des Tabellenpuffers wegen nicht erfüllter Einschränkungen ist aus Performance-Gründen bei Zugriffen auf gepufferte Tabellen bzw. Views zu beachten.
  • Um den Tabellenpuffer in der Anweisung SELECT explizit zu umgehen, sollte immer der Zusatz BYPASSING BUFFER verwendet und nicht das implizite Verhalten ausgenutzt werden.
  • Die Voraussetzungen für die Tabellenpufferung von CDS-View-Entitäten werden wie Einschränkungen für die View selbst geprüft. Wenn die Tabellenpufferung für eine CDS-View-Entität möglich ist und die Pufferung mit einem CDS-Entitätspuffer eingeschaltet wird, besteht keine Notwendigkeit, den Puffer mit ABAP-SQL zu umgehen.
  • Die Einschränkungen für lesende Zugriffe bestimmen auch bei der Verwendung einer internen Tabelle als Datenquelle einer Query, ob diese auf dem AS ABAP ausgewertet werden kann oder ob ihr Inhalt zur Datenbank transportiert werden muss.






General Data in Customer Master   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11341 Date: 20240523 Time: 174413     sap01-206 ( 133 ms )