Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Statement is expensive

Former Member
0 Likes
222

Hi,

This statement is expensive because the information that was entered in the where clause is not very selective.

Kindly suggest the suitable

      • Check selection entry

SELECT DISTINCT pernr INTO it_pernr-pernr

FROM pa0001

CLIENT SPECIFIED

WHERE mandt EQ sy-mandt

AND pernr IN s_pernr

AND subty EQ space

AND objps EQ space

AND sprps EQ space

AND endda GE sy-datum

AND begda LE sy-datum

AND seqnr EQ '000'

AND bukrs IN s_bukrs

AND werks IN s_werks

AND persg IN s_persg

AND persk IN s_persk.

READ TABLE it_adpernr INTO wa_adpernr

WITH TABLE KEY pernr = it_pernr-pernr.

IF sy-subrc EQ 0.

APPEND it_pernr.

wa_adpernr-entry = 'X'. "indicator selection

MODIFY it_adpernr FROM wa_adpernr

TRANSPORTING entry

WHERE pernr EQ it_pernr-pernr.

ENDIF.

ENDSELECT.

1 REPLY 1
Read only

Former Member
0 Likes
204

first of all move all the entries into an internal table .. instead of

select..endselect ..

SELECT DISTINCT pernr INTO table it_pernr

FROM pa0001

CLIENT SPECIFIED

WHERE mandt EQ sy-mandt

AND pernr IN s_pernr

AND subty EQ space

AND objps EQ space

AND sprps EQ space

AND endda GE sy-datum

AND begda LE sy-datum

AND seqnr EQ '000'

AND bukrs IN s_bukrs

AND werks IN s_werks

AND persg IN s_persg

AND persk IN s_persk.

loop at it_pernr.

READ TABLE it_adpernr INTO wa_adpernr

WITH TABLE KEY pernr = it_pernr-pernr.

IF sy-subrc EQ 0.

wa_adpernr-entry = 'X'. "indicator selection

MODIFY it_adpernr FROM wa_adpernr

TRANSPORTING entry

WHERE pernr EQ it_pernr-pernr.

else.

delete it_pernr.

ENDIF.

endloop.