Application Development 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: 

Memory Issue with Internal Table

Former Member
0 Kudos
651

Hi Experts,

I have a problem with internal table memory. A select makes a huge increase in EXTENDED. Will we be able to increase the memory size allocated.

Allocated Used

Total memory allocated for the program : 3,973,952 3,317,952

Memory allocated for table T_DETAIL[] : 2,901,008 2,890,724 (Contains 6,000 Records)

For other tables : 44,312 34,807 (Normal)

Could please help me in solving this problem.

Thanx in advance,

Aishwarya.

1 ACCEPTED SOLUTION

Former Member
0 Kudos
118

Can u please let me know your select Query?

10 REPLIES 10

Former Member
0 Kudos
119

Can u please let me know your select Query?

naveen_inuganti2
Active Contributor
0 Kudos
118

Hi.,

This might be because of problem with internal memory availability. Check ur code, If u r not using any internal table i.e declared globally then use FREE statement to release the memory so that it can be used for ur itab.

FREE itabtemp. "itab temp is not being used further from this

point of time.

Reduce global declarations as far as possible.

Thanks,

Naveen.I

Former Member
0 Kudos
118

refer OSS Note 425207 for increasing ABAP memory settings. You may have to ask BASIS to increase this setting. But this is option after you have fine tuned ABAP for clearing unused tables etc.

increasing abap/buffersize should help.

0 Kudos
118

Hi,

I can understand that we can refresh/free the internal tables which are not used afterwards. But the probleam am facing is like, the program am working is with GLOBAL INVOICE, i need to be very carefull. So apart from refreshing the tables is there any way to increase the size. Can we increase the memory size dynamically in program? Or this can be done only by BASIS?

Regards,

Aishwarya.

0 Kudos
118

Hi,

Below is the query which increases the memory.

SELECT * INTO TABLE t_detail FROM ypst_fdsdmap

FOR ALL ENTRIES IN tl_vbap_tmp

WHERE vbeln = tl_vbap_tmp-vbeln.

0 Kudos
118

Hello Aishwarya,

Before the SELECT did you check if "tl_vbap_tmp" IS NOT INITIAL ??

BR,

Suhas

0 Kudos
118

Yeah,

It was checked.

Regards,

Aishwarya.

0 Kudos
118

Hi Aishwarya,

Memory allocated for table T_DETAIL[] : 2,901,008 2,890,724 (Contains 6,000 Records)

I think the memory allocated for each record is very large.

In the select statement, you have used *. Are all the fields from the table ypst_fdsdmap required? If not just change the structure of t_detail and select those fields which are required.

Former Member
0 Kudos
118

normally in prod systems, internal table can grow upto 500 mb, BASIS can increase it to 2 Gb.

in select you should not select *. before BASIS change any setting , somebody need to do detail analysys of code to make sure all the optimization is done. First thing anyone will catch is Select *.

0 Kudos
118

Hi All,

Thank you all for your valuable suggestion. i will keep this thread open and will close this once the issue is solved and will update you the solution that resolved my problem.

Regards,

Aishwarya.