Häh?ralf.wenzel hat geschrieben:Was für Tabellen? Standard? Sortiert? Schlüssel!
Könnte es sein, dass hier tatsächlich mal der Feldtransport in die Workarea den Ausschlag gibt? Wie sieht denn der Vergleich 1 Loop vs. 2 LOOPs mit WHERE aus, wenn du statt INTO workarea ASSIGNING <fieldsymbol> machst.ewx hat geschrieben:Ich habe noch mal den Vorschlag von Tron verwendet (zwei LOOPs mit WHERE anstelle ein LOOP mit CASE).
Diese Variante ist tatsächlich noch schneller, als LOOP-CASE...
Das überrascht mich tatsächlich, denn ich hätte gedacht, dass ein LOOP immer besser ist, als zwei...
Hmmm. also irgendwie sieht das Ergebnis anders aus, als gestern.black_adept hat geschrieben:ewx hat geschrieben:Wie sieht denn der Vergleich 1 Loop vs. 2 LOOPs mit WHERE aus, wenn du statt INTO workarea ASSIGNING <fieldsymbol> machst.
Code: Alles auswählen.
Call M. HELP=>P01_REDUCE 61.578
Call M. HELP=>P02_FILTER 38.791
Call M. HELP=>P04_LOOP_WHERE 21.527
Call M. HELP=>P03_LOOP_CASE 13.928
Call M. HELP=>P06_LOOP_WHERE_FS 13.008
Call M. HELP=>P07_LOOP_WHERE_NO 11.862
Call M. HELP=>P05_LOOP_CASE_FS 7.847
Code: Alles auswählen.
Call M. HELP=>P01_REDUCE 611.069
Call M. HELP=>P02_FILTER 438.324
Call M. HELP=>P04_LOOP_WHERE 205.884
Call M. HELP=>P03_LOOP_CASE 156.213
Call M. HELP=>P06_LOOP_WHERE_FS 147.022
Call M. HELP=>P07_LOOP_WHERE_NO 126.656
Call M. HELP=>P05_LOOP_CASE_FS 77.176
Code: Alles auswählen.
Call M. HELP=>P02_FILTER 139.923
Call M. HELP=>P01_REDUCE 107.003
Call M. HELP=>P03_LOOP_CASE 48.309
Call M. HELP=>P04_LOOP_WHERE 35.344
Call M. HELP=>P05_LOOP_CASE_FS 27.158
Call M. HELP=>P06_LOOP_WHERE_FS 22.069
Call M. HELP=>P07_LOOP_WHERE_NO 21.294
Code: Alles auswählen.
TYPES:
ltt_names TYPE SORTED TABLE OF lst_names
WITH NON-UNIQUE KEY name
WITH NON-UNIQUE SORTED KEY key_tf COMPONENTS tf.
Code: Alles auswählen.
22.228 Call M. HELP=>P07_LOOP_WHERE_NO
23.069 Call M. HELP=>P06_LOOP_WHERE_FS
30.696 Call M. HELP=>P04_LOOP_WHERE
33.123 Call M. HELP=>P05_LOOP_CASE_FS
38.863 Call M. HELP=>P02_FILTER
40.511 Call M. HELP=>P03_LOOP_CASE
87.286 Call M. HELP=>P01_REDUCE
Code: Alles auswählen.
LOOP AT names TRANSPORTING NO FIELDS WHERE tf = abap_true.
ADD 1 TO lv_true.
ENDLOOP.
LOOP AT names TRANSPORTING NO FIELDS WHERE tf = abap_false.
ADD 1 TO lv_false.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor ibo für den Beitrag (Insgesamt 2):
ewx • ralf.wenzel
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
ibo
Code: Alles auswählen.
Sorted Standard
P01_REDUCE 96.942 77.860
P02_FILTER 132.654 39.183
P03_LOOP_CASE 37.260 33.904
P04_LOOP_WHERE 31.183 28.029
P05_LOOP_CASE_FS 27.916 25.143
P06_LOOP_WHERE_FS 22.112 19.166
P07_LOOP_WHERE_NO 21.387 17.948