Skip to Content
May 05, 2010 at 02:15 PM

DELETE WHERE sample case that i would like to share with you



analyzing a program the other day i got the following hit list in SE30 as TOP 2 and TOP 3 of the most

expensive calls sorted by net time descending.

  Number        Gross =         Net Gross (%) Net (%) Call  
   11.975  23.651.879    15.612.054   12,0    7,9  Loop at IT_126570   
8.698.597   8.039.825  =  8.039.825    4,1    4,1  Append IT_126574 

source code excerpt:

REFRESH it_dict[].

it_dict[] = ist_dict[].
DELETE it_dict WHERE charactname  NE pv_charactname
                   AND   language_int = pv_language_int.

it_dict and ist_dict are both sorted tables with a non-unique key with charactname language_int tabix value_char.

Note: The DELETE WHERE is intarnally processed as a LOOP WHERE which APPENDS the the lines

to be deleted to an internal system table which afterwards is used in a system call that does the

delete (not visible). Since ST12 (which i use normally) combines the LOOP and the APPEND to a

single line which shows DELETE as the call i used SE30 here to show all the details.

Now what?

(How) can we optimize it?

How much time can we save?

I will follow up with more details later since there are some interesting things to show i think.

Kind regards,