2009 Mar 12 9:58 AM
Friends,
I need to solve the memory space problem to one of my report as that report making some issues while running in back groud job.
As of my knowledge there is a FREE Internal Table statement which can release the memory allocated for Internal Tables of our reports.
What are the other good steps to solve this memory loss issue.
Experts please share your valueble experiance here.
Thanks,
Naveen Inuganti
2009 Mar 12 10:00 AM
2009 Mar 12 10:05 AM
Incorrect reply. Select for all entries is rarely better than joins. Infact a join, even if badly written will be better than the loops that you will use to get the data from the two internal tables when you use for all entries. Check the performance forum for the same.
2009 Mar 12 10:03 AM
2009 Mar 12 10:07 AM
Gautham,
As far as I know REFRESH and CLEAR statements can make our program as performance wise good, as these are just to delete the contents of internal table and variables!
So please elobarate your answer! How this REFRESH statement can solve this memory probelm?
Sarath,
This FOR ALL ENTRIES and INNER JOINS are also suggestable while talking about performance issues. Ofcourse both are not comparable as these two are good at performance....
--Naveen Inuganti
2009 Mar 12 10:15 AM
memory space problem to one of my report as that report making some issues while running in back groud job.
Can you be clear on this.
What exactly you are getting and what you require.
2009 Mar 12 10:19 AM
Gautham,
I am trying to consider and include the code... which can prevents memory overflow of program.
Hope Its clear!
2009 Mar 12 10:30 AM
2009 Mar 12 11:03 AM
Hi Naveen,
Carryout all performance tuning techniques.
Check if the internal tables r declared wothnOCCURS 0. Avoid unnecessary global variables/internal tables. Try to use as many local variables as possible instead of using global variables. This saves lot of memory.
Try to reduce number of internal tables by finetuning the redesigning the code.
Hope it gave some idea.
Thanks,
Vinod.
2009 Mar 12 2:22 PM
Hi,
Those really good inputs for me....!
Is there any transaction code or any technique to check the Memory Occupation for our reports?
Thanks,
Naveen Inuganti
2009 Mar 12 2:29 PM
I am not sure you can check the memory of your report but
overall memory details of the server you can get from DB02 transaction.
Check if you have such option available either in SE30 or ST05.
2009 Mar 12 2:35 PM
Hi,
U can use transaction SE30. Here u can trace which part is taking time.
U can try with ST05 t code as well.
Thanks,
Vinod.
2009 Mar 12 10:09 AM
hi,
FREE is not going to suffice your purpose completely.
This is because the initial amount of memory allocated to the internal tables is not effected with that statement.
You can even try out with FIELD SYMBOLS, because they too handle the memory efficiently.
Field symbols provide greater flexibility when you address data objects:(With ref to SAP Library)
1. If you want to process sections of fields, you can specify the offset and length of the field dynamically.
2. You can assign one field symbol to another, which allows you to address parts of fields.
3. Assignments to field symbols may extend beyond field boundaries. This allows you to address regular sequences of fields in memory efficiently.
4. You can also force a field symbol to take different technical attributes from those of the field assigned to it.
Thanks
Sharath