Skip to Content
0
Former Member
Mar 19, 2009 at 12:48 PM

peroformance is slow in index better code for beter formance

28 Views

Hi experts,

This is a chalenging one.

can you help any one.

i need to increse the performance of this code.

it is taking half time of my report.

is there any beter code for this.

DATA: itab TYPE STANDARD TABLE OF db table1

WITH HEADER LINE.

DATA: BEGIN OF itab1 OCCURS 0,

field1 LIKE itab-field1,

field2 LIKE itab-field2,

field3 LIKE itab-field3,

field4 LIKE itab2-field1,

END OF itab1.

DATA: table_idx TYPE i.

DATA: itab2 TYPE STANDARD TABLE OF db table2

WITH HEADER LINE.

DATA: itab3 TYPE STANDARD TABLE OF db table3

WITH HEADER LINE.

DATA: BEGIN OF itab4 OCCURS 0,

field1 LIKE itab3-field1,

field2 LIKE itab3-field2,

END OF itab1.

DATA: itab5 TYPE STANDARD TABLE OF db table4 WITH HEADER LINE.

TYPES: BEGIN OF TA_TYPE OCCURS 0,

field1 LIKE itab-field1,

field2 LIKE itab-field2,

field3 LIKE itab5-field3,

END OF TA_TYPE.

DATA: it_type TYPE HASHED TABLE OF TA_TYPE WITH UNIQUE KEY

field1 field2 field3

WITH HEADER LINE.

TYPES: BEGIN OF TY_output OCCURS 0,

field1 LIKE (db table2)-field1,

bname LIKE usr02-bname,

objct LIKE ust10s-objct,

field4 LIKE itab3-field4,

END OF TY_output .

DATA: OUTPUT_TBLE TYPE HASHED TABLE OF TA_TYPE WITH UNIQUE KEY

field1 bname

WITH HEADER LINE.

perform if_specified.

FORM if_specified.

DATA: i_idx TYPE i,

wa_OUTPUT_TBLE TYPE TY_output.

READ TABLE itab1 WITH KEY field1 = itab2-field1

field2 = itab2-field2

BINARY SEARCH

TRANSPORTING NO FIELDS.

table_idx = sy-tabix.

LOOP AT itab1 FROM table_idx

WHERE field1 = itab2-field1 AND

field2 = itab2-field2.

table_idx = sy-tabix.

READ TABLE itab4 WITH KEY field2 = itab2-field2

BINARY SEARCH

TRANSPORTING NO FIELDS.

i_idx = sy-tabix.

LOOP AT itab4 FROM i_idx .

WHERE field2 = itab2-field2.

i_idx = sy-tabix.

READ TABLE it_type WITH TABLE KEY field3 = itab1-field3

field3 = itab1-field4

field3 = itab4-field2.

CHECK sy-subrc = 0.

wa_OUTPUT_TBLE-field1 = itab2-field1.

wa_OUTPUT_TBLE-bname = itab4-field2.

wa_OUTPUT_TBLE-field4 = itab2-field2.

wa_OUTPUT_TBLE-objct = itab1-field3.

INSERT wa_OUTPUT_TBLE INTO TABLE OUTPUT_TBLE.

ENDLOOP.

ENDLOOP.

ENDFORM. " if_specified

Edited by: sailu k on Mar 19, 2009 1:50 PM