Loop and Select 4

Performance improvement of a loop inside a loop, linear vs. exponential.

Here's a methord for achieving performance improvement of a loop inside a loop, i.e. linear vs. exponential.

It may not make a big difference in case of MARA, but for some huge header/detail combos it makes a big difference. The logic in the example has been tried in versions 3.1G, 3.1I, 4.6C, and has worked great in all cases.


data: 
begin of ta1 occurs 0 with header line,
  key1    ....
  data1    ....
end of ta1,
begin of ta2 occurs 0 with header line,
  key1    ...
  key2    ...
  data2
end of ta2,
idx like sy-index.

sort ta1 by key1.
sort ta2 by key1.
idx = 1.
loop at ta1.
  loop at ta2 from idx.
    if ta2-key1 > ta1-key1.
      exit.
    elseif ta2-key1  < ta2-key1.
      continue.
    endif.
    idx = sy-tabix + 1.
  endloop.
endloop.

* you may do some further improvements
* by not transporting all columns 
* I think I got the syntax right !!!

* In a particular example, the 
* difference in run times was several
* hours vs. a few minutes

This was first published in October 2002
This Content Component encountered an error

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchManufacturingERP

SearchOracle

SearchDataManagement

SearchAWS

SearchBusinessAnalytics

SearchCRM

SearchContentManagement

SearchFinancialApplications

Close