Application Development and Automation 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: 
Read only

Memory Issue with Internal Table

Former Member
0 Likes
2,131

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
Read only

Former Member
0 Likes
1,598

Can u please let me know your select Query?

10 REPLIES 10
Read only

Former Member
0 Likes
1,599

Can u please let me know your select Query?

Read only

naveen_inuganti2
Active Contributor
0 Likes
1,598

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

Read only

Former Member
0 Likes
1,598

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.

Read only

0 Likes
1,598

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.

Read only

0 Likes
1,598

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.

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
1,598

Hello Aishwarya,

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

BR,

Suhas

Read only

0 Likes
1,598

Yeah,

It was checked.

Regards,

Aishwarya.

Read only

0 Likes
1,598

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.

Read only

Former Member
0 Likes
1,598

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 *.

Read only

0 Likes
1,598

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.