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

Performance issue on select

Former Member
0 Likes
727

Hi friends,

Please let me know which one is better for better performance.

I have checked the internal table fp_i_cleardocs is not empty in both the cases.

Code 1:


      SELECT zbukr
             rzawe
             uzawe
             laufd
             laufi
             lifnr
             kunnr
             vblnr
             waers
             name1
             znme1
             znme4  
             zpstl
             zort1
             zstra
             zpfac
             zregi
             zbnks
             zbnkn
             zbnky
             zbkon
             zaldt
             ubknt
             ubnkl
             rwbtr
             rwskt
             bkref
              FROM reguh INTO TABLE fp_i_reguh
              FOR ALL ENTRIES IN fp_i_cleardocs
              WHERE  laufd IN l_i_rundt
              AND zbukr = fp_i_cleardocs-bukrs
              AND ( lifnr = fp_i_cleardocs-accno OR kunnr = fp_i_cleardocs-accno )
              AND   vblnr = fp_i_cleardocs-augbl
              AND   rzawe = fp_i_cleardocs-zlsch.

Code 2:

Removing OR condition in the where clause....


      SELECT zbukr
             rzawe
             uzawe
             laufd
             laufi
             lifnr
             kunnr
             vblnr
             waers
             name1
             znme1
             znme4  
             zpstl
             zort1
             zstra
             zpfac
             zregi
             zbnks
             zbnkn
             zbnky
             zbkon
             zaldt
             ubknt
             ubnkl
             rwbtr
             rwskt
             bkref
              FROM reguh INTO TABLE fp_i_reguh
              FOR ALL ENTRIES IN fp_i_cleardocs
              WHERE  laufd IN l_i_rundt
              AND zbukr = fp_i_cleardocs-bukrs
              AND ( lifnr = fp_i_cleardocs-accno )
              AND   vblnr = fp_i_cleardocs-augbl
              AND   rzawe = fp_i_cleardocs-zlsch.

      SELECT zbukr
             rzawe
             uzawe
             laufd
             laufi
             lifnr
             kunnr
             vblnr
             waers
             name1
             znme1
             znme4  
             zpstl
             zort1
             zstra
             zpfac
             zregi
             zbnks
             zbnkn
             zbnky
             zbkon
             zaldt
             ubknt
             ubnkl
             rwbtr
             rwskt
             bkref
              FROM reguh appending TABLE fp_i_reguh
              FOR ALL ENTRIES IN fp_i_cleardocs
              WHERE  laufd IN l_i_rundt
              AND zbukr = fp_i_cleardocs-bukrs
              AND ( kunnr = fp_i_cleardocs-accno )
              AND   vblnr = fp_i_cleardocs-augbl
              AND   rzawe = fp_i_cleardocs-zlsch.

Thanks

Poorna

1 ACCEPTED SOLUTION
Read only

KjetilKilhavn
Active Contributor
0 Likes
685

Why don't you just use SE30 to test it? The performance difference may depend on the system. In general I would advise that you use the OR option instead of using 2 selections, the only exception would be if the OR led to the database not using a very good index.

You can use ST05 and the button <b>Enter SQL Statement</b> to get a selection 'explained' which means you will be told what the selection strategy will be. Then you can see if the OR option influences index selection.


Kjetil Kilhavn (Vettug AS) - ABAP developer since Feb 2000, but will probably never be a Rockstar developer
5 REPLIES 5
Read only

KjetilKilhavn
Active Contributor
0 Likes
686

Why don't you just use SE30 to test it? The performance difference may depend on the system. In general I would advise that you use the OR option instead of using 2 selections, the only exception would be if the OR led to the database not using a very good index.

You can use ST05 and the button <b>Enter SQL Statement</b> to get a selection 'explained' which means you will be told what the selection strategy will be. Then you can see if the OR option influences index selection.


Kjetil Kilhavn (Vettug AS) - ABAP developer since Feb 2000, but will probably never be a Rockstar developer
Read only

0 Likes
685

Hi Kjetil ,

Thank you for your response.

I got the below analysis from the basis team.

Please help me if you understand anything from the below.

SELECT zbukr

rzawe

uzawe

laufd

laufi

lifnr

kunnr

vblnr

waers

name1

znme1

  • znme4 "UTP1797

znme2 "UTP1797

zpstl

zort1

zstra

zpfac

zregi

zbnks

zbnkn

zbnky

zbkon

zaldt

ubknt

ubnkl

rwbtr

rwskt

bkref

FROM reguh INTO TABLE fp_i_reguh

FOR ALL ENTRIES IN fp_i_cleardocs

WHERE laufd IN l_i_rundt

AND zbukr = fp_i_cleardocs-bukrs

AND ( lifnr = fp_i_cleardocs-accno OR kunnr = fp_i_cleardocs-accno )

AND vblnr = fp_i_cleardocs-augbl

AND rzawe = fp_i_cleardocs-zlsch.

ENDIF.

SQL Statement

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ? UNION ALL

SELECT "ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" , "ZSTRA" ,

"ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" , "ZALDT" , "UBKNT" ,

"UBNKL" , "RWBTR" , "RWSKT" , "BKREF" FROM "REGUH" WHERE "MANDT" = ? AND "ZBUKR" =

? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR" = ? AND "RZAWE" = ?

Access Plan Opt Level = 5 ; Parallelism = None

0 SELECT STATEMENT ( Estimated Costs = 1.229E+07 [timerons] )

--- 1 RETURN

--- 2 UNION

-- 3 FETCH REGUH


4 IXSCAN REGUH~Z01 #key columns: 2

-- 5 FETCH REGUH


6 IXSCAN REGUH~Z01 #key columns: 2

-- 7 FETCH REGUH


8 IXSCAN REGUH~Z01 #key columns: 2

-- 9 FETCH REGUH


10 IXSCAN REGUH~Z01 #key columns: 2

-- 11 FETCH REGUH


12 IXSCAN REGUH~Z01 #key columns: 2

-- 13 FETCH REGUH


14 IXSCAN REGUH~Z01 #key columns: 2

-- 15 FETCH REGUH


16 IXSCAN REGUH~Z01 #key columns: 2

-- 17 FETCH REGUH


18 IXSCAN REGUH~Z01 #key columns: 2

-- 19 FETCH REGUH


20 IXSCAN REGUH~Z01 #key columns: 2

-- 21 FETCH REGUH


22 IXSCAN REGUH~Z01 #key columns: 2

-- 23 FETCH REGUH


24 IXSCAN REGUH~Z01 #key columns: 2

-- 25 FETCH REGUH


26 IXSCAN REGUH~Z01 #key columns: 2

-- 27 FETCH REGUH


28 IXSCAN REGUH~Z01 #key columns: 2

-- 29 FETCH REGUH


30 IXSCAN REGUH~Z01 #key columns: 2

-- 31 FETCH REGUH


32 IXSCAN REGUH~Z01 #key columns: 2

-- 33 FETCH REGUH


34 IXSCAN REGUH~Z01 #key columns: 2

-- 35 FETCH REGUH


36 IXSCAN REGUH~Z01 #key columns: 2

-- 37 FETCH REGUH


38 IXSCAN REGUH~Z01 #key columns: 2

-- 39 FETCH REGUH


40 IXSCAN REGUH~Z01 #key columns: 2

--- 41 FETCH REGUH

|

-


42 IXSCAN REGUH~Z01 #key columns: 2

Simple case

SQL Statement

SELECT

"ZBUKR" , "RZAWE" , "UZAWE" , "LAUFD" , "LAUFI" , "LIFNR" , "KUNNR" ,

"VBLNR" , "WAERS" , "NAME1" , "ZNME1" , "ZNME2" , "ZPSTL" , "ZORT1" ,

"ZSTRA" , "ZPFAC" , "ZREGI" , "ZBNKS" , "ZBNKN" , "ZBNKY" , "ZBKON" ,

"ZALDT" , "UBKNT" , "UBNKL" , "RWBTR" , "RWSKT" , "BKREF"

FROM

"REGUH"

WHERE

"MANDT" = ? AND "ZBUKR" = ? AND ( "LIFNR" = ? OR "KUNNR" = ? ) AND "VBLNR"

= ? AND "RZAWE" = ?

Access Plan Opt Level = 5 ; Parallelism = None

0 SELECT STATEMENT ( Estimated Costs = 6.145E+05 [timerons] )

1 RETURN

2 FETCH REGUH

3 IXSCAN REGUH~Z01 #key columns: 2

SQL summary

Executions Identical Duration Records Time/exec Rec/exec. AvgTime/R. MinTime/R. Length BfTp TabType Obj. name

74 0 4288,723,396 774 57,955,722 10.5 5,540,986 2,631,290 3,488 deact TRANSP REGUH

1 0 37,874,064 734 37,874,064 734.0 51,600 51,600 2,016 deact TRANSP BSAK

1 0 6,639,961 319 6,639,961 319.0 20,815 20,815 2,016 deact TRANSP BSAD

37 0 4,232,595 2,456 114,394 66.4 1,723 279 2,016 deact TRANSP BSAK

772 0 1,176,735 780 1,524 1.0 1,509 245 3,968 deact CLUSTER REGUC

Thanks in advance

Poorna.

Read only

0 Likes
685

I suggest you talk to your basis team (again). Did you or did you not use SE30? It seems to me the basis team has used ST05 not to get the statement explained, but to dump the trace results to you.

If you compare the ST05 explanation for the two (three) cases you can see whether a better index will be used when you split the selection. If that is not the case there is no point (that I can think of now) in splitting it.

I think the entries with "IXSCAN REGUH~Z01 #key columns: 2" means index Z01 of table REGUH has been used with 2 key columns specified. So perform the other selection(s) as well and see if it is the same index that gets used.

Index Z01 is a customer index. Check its definition to see if you can specify additional fields in your selection, as this will reduce the number of entries that will be checked. However, unless you can specify all fields consecutively from the first field there won't be any significant reduction.

Example: assume your index is defined with the following fields:

1: ZBUKR

2: RZAWE

3: LIFNR

4: KUNNR

You could then possibly speed up your selection significantly by changing

( lifnr = fp_i_cleardocs-accno OR kunnr = fp_i_cleardocs-accno )

to


(  lifnr = fp_i_cleardocs-accno 
OR lifnr = '0000000000'        ) AND
(  kunnr = fp_i_cleardocs-accno
OR kunnr = '0000000000'        )

Assuming the above change is relevant, of course (i.e. the vendor number is either the account number or initial) - but I hope you get the drift. You need to study your indices and tables for possibilities.


Kjetil Kilhavn (Vettug AS) - ABAP developer since Feb 2000, but will probably never be a Rockstar developer
Read only

Former Member
0 Likes
685

HI,

IT IS CLEARLY MENTIONED IN YOUR BASIS TEAM REPORT THAT USING THE FIRST SELECT QUAERY HAS TAKEN LESS TIME THEN THE SECOND SELECT QUAERY SEE TO THE TIME FRAME

Read only

0 Likes
685

Hi Phanindra,

The analysis sent by basis team is for one select statement only.

Any help is appreciated.

Thanks and regards

Poorna