Ansicht
Dokumentation

ABENOPEN_SQL_GENERAL - OPEN SQL GENERAL

ABENOPEN_SQL_GENERAL - OPEN SQL GENERAL

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Open SQL - Allgemeines

Umfang von Open SQL

Open SQL bezeichnet die Teilmenge der ABAP-Anweisungen, die einen direkten Zugriff auf Daten der zentralen Datenbank des aktuellen AS ABAP ermöglicht. Die Open-SQL-Anweisungen bilden den DML-Anteil von SQL in ABAP ab, der von allen Datenbanksystemen unterstützt wird.

Wir unterscheiden

Datenbankschnittstelle

Die Anweisungen von Open SQL werden in der Open-SQL-Schnittstelle der Datenbankschnittstelle in datenbankspezifisches SQL verwandelt, an das Datenbanksystem übergeben und dort ausgeführt. Mit Open-SQL-Anweisungen kann ausschließlich auf Datenbanktabellen zugegriffen werden, die im ABAP Dictionary deklariert sind, wobei auch ein Zugriff auf Views möglich ist.

Standardmäßig wird auf die zentrale Datenbank des AS ABAP zugegriffen. Über sekundäre Datenbankverbindungen sind auch Zugriffe auf andere Datenbanken möglich.

Hinweis

Die Open-SQL-Schnittstelle der Datenbankschnittstelle berücksichtigt, dass die Reihenfolge der Spalten der Datenbanktabelle im Datenbanksystem von der Reihenfolge in der Definition der Datenbanktabelle im ABAP Dictionary abweichen kann. Bei der Verwendung von Open SQL kann immer von der Reihenfolge im ABAP Dictionary ausgegangen werden und die Datenbankschnittstelle führt falls notwendig eine entsprechende Umsetzung durch.

Datenbankzugriff

Jede Open-SQL-Anweisung ist gleichbedeutend mit einem Zugriff auf die Datenbank. Dies gilt insbesondere für mit ENDSELECT abgeschlossene SELECT-Anweisungen. Zu lesende und zu ändernde Daten werden in Paketen zwischen Datenbankserver und aktuellem Applikationsserver transportiert, deren Größe über Profilparameter konfigurierbar ist (der Standardwert für Oracle ist beispielsweise 65 KB). Die Menge der Zeichen, die in einem Paket transportiert werden kann, hängt davon ab, ob es sich um ein Unicode- oder Nicht-Unicode-System handelt.

Für die Verbesserung der Performance von Datenbankzugriffen, kann für einzelne Datenbanktabellen die so genannte SAP-Pufferung eingeschaltet werden, damit nicht bei jedem Zugriff direkt auf die Datenbank zugegriffen wird.

Mit der Funktion SQL-Trace des Werkzeugs Performance-Trace (Transaktion ST05) können die tatsächlich von der Datenbankschnittstelle an die Datenbank übergebenen SQL-Anweisungen analysiert werden.

Hinweis

Wenn bei einem einzelnen Datenbankzugriff mehr als ca. 2^32 Einträge adressiert werden, ist das Verhalten des Datenbanksystems undefiniert.

Mandantenbehandlung

Open SQL arbeitet mit einer automatischen Mandantenbehandlung, die immer auf den aktuellen Mandanten zugreift. Der aktuelle Mandant ist Inhalt des Systemfelds sy-mandt.

Beim Zugriff auf mandantenabhängige Datenbanktabellen darf die Mandantenkennung nicht explizit in WHERE-Bedingungen angegeben werden bzw. wird bei Angabe in Arbeitsbereichen von ändernden Anweisungen nicht berücksichtigt. Die automatische Mandantenbehandlung kann mit dem Zusatz USING CLIENT umgeschaltet und mit dem Zusatz CLIENT SPECIFIED abgeschaltet werden.

Hinweise

  • Die Daten eines Mandanten auf einem AS ABAP stellen in sich geschlossene Einheiten dar. In Anwendungsprogrammen sollten keine mandantenübergreifenden Zugriffe auf Datenbanken erfolgen. Aus diesem Grund sollte dort der Zusatz CLIENT SPECIFIED niemals verwendet werden und auch kein Zugriff auf sy-mandt erfolgen.
  • Eine echte Multitenancy bei der systemseitig dafür gesorgt wird, dass die Anwendungsdaten verschiedener Mandanten voneinander isoliert sind, wird im aktuellen Release nicht von der ABAP Laufzeitumgebung unterstützt.

LUW

Bei Anwendung der ändernden Anweisungen (INSERT, UPDATE, MODIFY und DELETE) ist auf konsistente Datenhaltung zu achten. Dazu dient das LUW-Konzept. In den Anwendungsprogrammen eines AS ABAP sind die impliziten Datenbank-LUWs in der Regel nicht ausreichend für die konsistente Datenhaltung. Stattdessen müssen explizite SAP-LUWs programmiert werden, die in der Regel mehrere Datenbank-LUWs umfassen (siehe Abschnitt Datenkonsistenz).

Performance

Siehe Performance Hinweise zu Open SQL.






CL_GUI_FRONTEND_SERVICES - Frontend Services   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6713 Date: 20240523 Time: 111625     sap01-206 ( 101 ms )