Knobelfrage: Wie viele READs sind das?

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Knobelfrage: Wie viele READs sind das?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Moin,

das findet man per Debugging ja nicht raus, aber vielleicht weiß das jemand: Die Anweisung

Code: Alles auswählen.

data(result) = itab[ feld1 = itab2[...]-feld1 
                     feld2 = itab2[...]-feld2 
                     feld3 = itab2[...]-feld3 ]-result.
besteht (unter der Annahme, dass die Lesebedingungen auf itab2 in allen drei Fällen identisch ist) wirklich aus drei READ TABLE auf itab2? Demnach müsste das ja langsamer sein als

Code: Alles auswählen.

data(itabrow2) = itab[...].
data(result) = itab[ feld1 = itabrow2-feld1 
                     feld2 = itabrow2-feld2 
                     feld3 = itabrow2-feld3 ]-result.
Oder ist das irgendwie gepuffert?

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Re: Knobelfrage: Wie viele READs sind das?

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
der read ist ziemlich gut optimiert AFAIK.
Im Zweifelsfall einfach mal testen...
Kommt wahrscheinlich eh sehr auf Art der Tabelle, Tabellengröße und Release drauf an.

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Kommt wahrscheinlich auch darauf an, was in [...] drin steht. Zugriff über Index oder Bedingung?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Bedingung.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Schreib ein Miniprogramm, lagere die beiden Versionen in jeweils eine Unterroutine aus und durchlaufe das dann jeweils 100.000 ( oder was weiß ich ) mal in der SAT.
Dann weißt du, wie gut / ob das SAP intern optimiert.
Dabei bekommst du dann auch heraus, ob die Frage für deinen Fall rein theoretischer Natur ist oder ob das am Ende tatsächlich bemerkbar in der Laufzeit ist. ( Und ich wüßte gerne die Antwort auch wenn es rein akademisch ist auch gerne ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Ja, das könnte ich machen -- aber ich kann auch vorher hier fragen, ob jemand Erfahrung damit hat ;) Mal sehen, ob ich am WE Zeit dafür habe.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Variante 2 ist etwa doppelt so schnell wie Variante 1. --> Wahrscheinlich mehrfache unabhängig Reads und keine Optimierung.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Thomas R.

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Wow. Da staune ich. Danke für den Test.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
@Ralf: Ich gehe davon aus, dass du gerne die Version ohne Hilfsvariable benutzen würdest, ohne auf die eklatante Mehrfach-READ-Problematik zu stoßen.
Daher folgende Alternative, die ohne explizite, im Programm ansprechbare, Hilfsvariablen auskommt und von der Geschwindigket Variante 2 entspricht

Code: Alles auswählen.

DATA(result) = CONV zieltyp( LET itab2row = itab2[...] IN itab[ feld1 = itab2row-feld1
                                                                feld2 = itab2row-feld2
                                                                feld3 = itab2row-feld3]-result ).
P.S. Persönlich würde ich diese Krücke nicht verwenden sondern Version2. Ist de facto das gleiche, aber Version 2 m.E. einfacher lesbar und (lokale) Variablen fressen kein Brot.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelfrage: Wie viele READs sind das?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
black_adept hat geschrieben:
25.02.2022 13:36
@Ralf: Ich gehe davon aus, dass du gerne die Version ohne Hilfsvariable benutzen würdest, ohne auf die eklatante Mehrfach-READ-Problematik zu stoßen.
Bingo ;)

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 839
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 167
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2329
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1544

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.

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 839
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 167
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2329
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1544

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 608
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2237
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8829