Performance Tuning using Parallel Cursor

By Suresh Kumar Parvathaneni, YASH Technologies

Nested Loops – This is one of the fear factors for all the ABAP developers as this consumes lot of program execution time. If the number of entries in the internal tables is huge, then the situation would be too worse. The solution for this is to use parallel cursor method whenever there is a need for Nested Loop.

Program using Normal Nested Loop:

REPORT  ZNORMAL_NESTEDLOOP.

TABLES:
  likp,
  lips.

Data:
  t_likp  
type table of likp,
  t_lips  
type TABLE OF lips.

data:
  W_RUNTIME1 
TYPE I,
  W_RUNTIME2 
TYPE I.

START-
OF-SELECTION.
select *
  
from likp
  
into table t_likp.

select *
  
from lips
  
into table t_lips.

get RUN TIME FIELD w_runtime1.

loop at t_likp into likp.
  
loop at t_lips into lips where vbeln eq likp-vbeln.
  
endloop.
endloop.

get RUN TIME FIELD w_runtime2.

w_runtime2 = w_runtime2 - w_runtime1.

write w_runtime2.

Nested Loop using Parallel Cursor:

REPORT  zparallel_cursor2.

TABLES:
  likp,
  lips.

DATA:
  t_likp  
TYPE TABLE OF likp,
  t_lips  
TYPE TABLE OF lips.

DATA:
  w_runtime1 
TYPE i,
  w_runtime2 
TYPE i,
  w_index 
LIKE sy-index.

START-
OF-SELECTION.
  
SELECT *
    
FROM likp
    
INTO TABLE t_likp.

  
SELECT *
    
FROM lips
    
INTO TABLE t_lips.

  
GET RUN TIME FIELD w_runtime1.
  
SORT t_likp BY vbeln.
  
SORT t_lips BY vbeln.

  
LOOP AT t_likp INTO likp.

    
LOOP AT t_lips INTO lips FROM w_index.
      
IF likp-vbeln NE lips-vbeln.
        w_index = sy-tabix.
        
EXIT.
      
ENDIF.
    
ENDLOOP.
  
ENDLOOP.

  
GET RUN TIME FIELD w_runtime2.

  w_runtime2 = w_runtime2 - w_runtime1.

  
WRITE w_runtime2.

Analysis report: Runtime in microseconds: 

Iteration No

Normal Nested Loop

Using Parallel Cursor

 

1

34,796,147

63,829

2

38,534,583

56,894

3

34,103,426

50,510

Please send us your feedback/suggestions at webmaster@SAPTechnical.COM 

HomeContribute About Us Privacy Terms Of Use • Disclaimer • SafeCompanies: Advertise on SAPTechnical.COM | Post JobContact Us  

Graphic Design by Round the Bend Wizards

footer image footer image