Datenexklusion anhand von Literalen in ABAP SQL

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Datenexklusion anhand von Literalen in ABAP SQL

Beitrag von Radinator (ForumUser / 76 / 12 / 7 ) »
Heyo,

mal ne vieleicht etwas bescheuerte Frage, aber wenn ich in einem SQL Statement mit JOIN arbeite sollte man Daten anhand von Literalen in der JOIN ON Bedingung ausschließen oder eher anhand der WHERE?

Als Beispiel jetzt mal ganz simpel gestaltet das Auslesen der Materialnummer und des Materialtextes aus MARA und MAKT

Code: Alles auswählen.

  select
    mara~matnr,
    makt~maktx
  from
    mara as mara
      join
    makt as makt
      on
    mara~matnr = makt~matnr
  where
    spras = 'D'
  into table
    @data(mara_daten_where).

  select
    mara~matnr,
    makt~maktx
  from
    mara as mara
      join
    makt as makt
      on
    mara~matnr = makt~matnr
      and
    spras = 'D'
  into table
    @data(mara_daten_from).
Gibt es dazu ein Best Practice? Oder etwas was gegen die Verwendung der Datenexklusion in der ON Bedingung spricht?
Wenn ich zwei Tabellen anhand von Tabellenfelder zusammen hänge dann ist es ja üblich das mit ON a~feld = b~feld zu machen, der Compiler meckert zumindest nicht wenn ich das mit Literalen mache.
edit: Also hat das Verwenden von Literalen mit ON irgendwelche Performancenachteile gegenüber der Verwendung in WHERE?

Mir geht es aktuell kokret um ein JOIN zwischen MARA, MAKT, EINE und EINA wo ich nur die deutschen Texte mit einer bestimmen Einkäufer Gruppe haben will.

VG radinator

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Datenexklusion anhand von Literalen in ABAP SQL

Beitrag von rob_abc (Specialist / 135 / 35 / 57 ) »
Es scheint so, als würde es beim INNER JOIN einen Performance-Unterschied machen.

https://help.sap.com/doc/abapdocu_cp_in ... _join.html
"A WHERE condition for a SELECT statement with joins affects the result set created using the joins."

So wird das WHERE erst angewendet, nachdem der JOIN gebildet wurde.
Zuletzt geändert von rob_abc am 13.05.2025 12:22, insgesamt 1-mal geändert.

Re: Datenexklusion anhand von Literalen in ABAP SQL

Beitrag von black_adept (Top Expert / 4134 / 131 / 956 ) »
Hmm - interessante Frage. Ein guter DB-Optimizer sollte beide Zugriffe gleich behandeln, aber wenn ich mir nur vorstelle was mit den beiden Anweisungen exakt angefragt wird, sagt mir mein (evtl. durchaus falsch liegendes) Gefühl, dass die Version mit dem Literal in der ON-Bedingung eigentlich besser sein sollte, weil du ein kleineres Kreuzprodukt bildest aus dem nachher gefiltert wird.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Datenexklusion anhand von Literalen in ABAP SQL

Beitrag von Radinator (ForumUser / 76 / 12 / 7 ) »
"dass die Version mit dem Literal in der ON-Bedingung eigentlich besser sein sollte, weil du ein kleineres Kreuzprodukt bildest aus dem nachher gefiltert wird."
Das war auch mein erster Gedanke 😅

Also hilft alles nix, werd wohl oder übel entweder schauen wanns in die Hose geht (Performancetechnisch) und nachjustieren oder mir >jetzt< die Mühe machen das zu timen und schauen was schneller ist.
Aktuell liegt das Programm im ED0 mit kaum verwertbaren Daten.
Danke euch trotzdem für den Input, wenn noch wer was hat gerne her damit! :)

Seite 1 von 1

Vergleichbare Themen

0
Antw.
3647
Views
EWM: HU mit RBG anhand von Produkt-LB bewegen
von TimTo » 14.02.2019 15:08 • Verfasst in Sonstige Module
0
Antw.
1210
Views
Sortierung anhand von Tabellenspalten
von Lamerman » 18.05.2006 14:33 • Verfasst in ABAP® Core
1
Antw.
922
Views
Externe Tabelle anhand von ANY Table
von P4dd3y » 08.02.2021 11:06 • Verfasst in ABAP® Core
4
Antw.
2116
Views
Username anhand der E-mail herausfinden
von L0w-RiDer » 27.11.2018 13:11 • Verfasst in ABAP® für Anfänger
5
Antw.
7333
Views
Alter ermitteln anhand Geburtsdatum
von Andreas Schlender » 23.05.2007 12:11 • Verfasst in ABAP® für Anfänger

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.