05-23-2011 3:13 PM
We have a requirement in which we have to display more than 5 lac records (= 500,000) in a single alv report. The internal table has 30 fields. it takes around five minutes to display the alv.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_pf_status_set = pfstatus
it_fieldcat = it_fcat[]
i_save = 'A'
is_layout = gs_layout
is_variant = import_variant
it_events = events[]
TABLES
t_outtab = i_tab.
above is the code used to display the alv. Any change in the coding to be done to improve the performance?
Thanks in advance.
K Mohan
Edited by: Thomas Zloch on May 23, 2011 4:16 PM
05-23-2011 3:19 PM
ALV is not designed for handling very large data volumes, check the online documentation of the ALV function modules and classes.
All data must be in memory at once and is even multiplied inside the standard function modules / classes before display, as far as I have observed. Thus the runtime increases with growing size of the internal table, the system will probably start swapping to hard disk at some point.
Search for related SAP notes if still in doubt.
Thomas
06-17-2011 1:43 PM
ALV display will be slow in these cases where there is too many records. may be try out other output options, but with these many records in the output most of the other options too will be slow.
Prabhu
06-18-2011 9:51 PM
- Check if the program is taking long time while fetching or finalizing of the table.. Make some repair here.
- If the time is taking in call for alv_grid_display, then no further tuning would be required.
06-20-2011 4:10 AM
ALV is easiest and effective way of producing reports to the users . Users are very much comfortable with ALV reports as it can be easily downloaded to Excel and its in tabulation. The time taken is more only in ALV call function.
Thanks,
k.mohan
06-23-2011 11:36 AM
Hi,
As Thomas said ALV is not designed to display such a huge data, any how you can limit the data in the selection screen. one more reason is if you display 5Lak records in one ALV list then if you download them to excel sheet, you can download upto 65000 records only. So limit the display not more than 60000 for a better performance.
Thanks,
Bhargav.