2008 May 15 12:20 PM
Hi,
User want to improve the performance of a standard program RLLL07SE in which a RESB table data is fetched and take much time on it.
The select querry for RESB is,
SELECT * FROM RESB WHERE
MATNR = MATNR AND
WERKS = WERKS AND
XLOEK = SPACE AND "Löschkennzeichen
KZEAR = SPACE AND "endausgefaßt
XWAOK = CON_X AND "Warenausgang erlaubt
LGNUM = LGNUM AND
LGTYP = LGTYP AND
LGPLA = LGPLA.
whereas the table index is created on following fields of RESB,
MATNR
WERKS
XLOEK
KZEAR
BDTER
What possible can be done in this respect as the program is a standard one we can change only in Table Inxex I guess..or what else can be done?
Can we add LGNUM LGTYP LGPLA into the particular index apart from the existing fields?
2008 May 15 12:27 PM
Hello.
In my opinion, considering that the query uses the first 4 fields of the index, that query should perform well (no need to change).
However, if you want to improve it, once again, in my opinion, you shoud create a new index (not changing the standard and not changing the standard program). The existing index, created that way, is used in other standard programs.
You can open a note in SAP site with your problem.
Best regards.
Valter Oliveira.
2008 May 16 6:13 AM
Hi,
Instead of creating the Index, Get Data from RESB with the where clause having the entire key of the index and then loop to the internal and delete the unwanted entries as shown below.
loop at itab.
if itab-LGNUM = LGNUM AND
itab-LGTYP = LGTYP AND
itabLGPLA.
else.
delete itab index sy-tabix.
endif.
endloop.
As u r getting data with entire index fields the performance will surely increase. Also avoid Select * and retrieve whatever fields u require.
As you r not having value to the field BDTER, you can pass a range or select-options for this field which has empty valuee.
Regards,
Satya