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

Help in Dump For Select

Former Member
0 Likes
2,124

Hi,

i do select for maybe 3,971,953 records in Prod

and i have dump in Qa And Dev i have less records so i dont have any dump,

this is my select:

SELECT *

FROM catsdb

INTO CORRESPONDING FIELDS OF TABLE c_tab

WHERE workdate GE re_date.

i reward

this is the erorr :

What happened?

The current program had to be terminated because of an

error when installing the R/3 System.

The program had already requested 271435216 bytes from the operating

system with 'malloc' when the operating system reported after a

further memory request that there was no more memory space

available.

Make a note of the actions and input which caused the error.

To resolve the problem, contact your SAP system administrator.

You can use transaction ST22 (ABAP Dump Analysis) to view and administer

termination messages, especially those beyond their normal deletion

date.

Set the system profile parameters

- abap/heap_area_dia

- abap/heap_area_nondia

to a maximum of 271435216. Then reduce the value by 10.000.000 to be on the

safe side.

Then restart the SAP System.

abap/heap_area_nondia and abap/heap_area_dia:

Set smaller than the memory achieved for each process

with 'malloc' and smaller than abap/heap_area_total

You should also check whether the available memory (file system

swap and main memory) is sufficient for the started program

and its data.

Error analysis

When the program was running, it was established that more

memory was needed than the operating system is able to provide savely.

To avoid a system crash, you must prevent this

situation.

Regards

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,445

Hi,

Try to mension some more fields for selection in WHERE CLAUSE.

If u want to execute the same SELECT,the basis people has to increase the roll area.

sachin.

9 REPLIES 9
Read only

Sm1tje
Active Contributor
0 Likes
1,445

Too many records you are trying to select. Only settings by basis administrator can solve this or narrow down the selection so you get less records.

BTW: Basis will probably tell you to narrow down the number of records to be selected. Normally, if the settings are done correct already, they will not just say, ohhh let's extend the memory etc. for a report to work properly. You can ask of course if there is no other way....

Edited by: Micky Oestreich on May 6, 2008 11:04 AM

Read only

Former Member
0 Likes
1,445

Hi micky'

There is way to do it in 2 select to relieve the memory,

the first select into for 13 month ago until 6 month ago

and after select appending for 6 month ago until now?

the time that the program is running i don't care because

it will run at night in job.

Regards

Read only

Sm1tje
Active Contributor
0 Likes
1,445

It is worth a try but I don't think this will really solve your problem. However, what is it you want to do with the ouput? Can't you just create several batch jobs, say one for every month? But, like I said, this kinda depends on the requirement.

Read only

Former Member
0 Likes
1,445

O.k. Micky

There is commend between the two select taht i can refresh the memory or wait ?

Regards

Read only

Former Member
0 Likes
1,445

hi,

1. Consult your basis consultant for increasing the memory. So that it can hold the required number of records.

2. Try using all the key fields in the where condition of your select statement.

3. Instead of using '*' select only the required fields.

4. Avoid using into corresponding statement and use INTO table statement..

Regards,

Santosh

Read only

Former Member
0 Likes
1,446

Hi,

Try to mension some more fields for selection in WHERE CLAUSE.

If u want to execute the same SELECT,the basis people has to increase the roll area.

sachin.

Read only

manuel_bassani
Contributor
0 Likes
1,445

Hi Ricardo !

It seems that you're selecting too many rows into a table...

> The program had already requested 271435216 bytes from the operating

> system with 'malloc' when the operating system reported after a

> further memory request that there was no more memory space

> available.

In Dev system the dump doesn't appears because you have less data.

Are you sure you need all that data inside one internal table??

Maybe you can try to change your select to reduce the selected rows...

otherwise.... maybe the archiving of old data could be an option...

Last thing....you can contact your SAP admin for increase the amount of available memory (for ABAP processes) as described in the Dump note

Let me know

Best regards,

Manuel

Read only

Former Member
0 Likes
1,445

Hi,

Try to use open cursor to select the data from db table.

Below is an example for this.

What ever the logic you do this in between DO and ENDDO.

DATA: packsize TYPE i VALUE 1000,

OPEN CURSOR WITH HOLD db_cursor FOR "Defect 12319

SELECT (tab_fields) FROM glpca

CLIENT SPECIFIED

BYPASSING BUFFER

WHERE rldnr IN rldnr.

DO.

      • To Fetch data in chunks of 2gb

FETCH NEXT CURSOR db_cursor

INTO CORRESPONDING FIELDS OF TABLE i_glpca

PACKAGE SIZE packsize.

*Begin of defect 12319

IF sy-subrc NE 0.

CLOSE CURSOR db_cursor.

EXIT.

ENDIF.

ENDDO.

Or you can also use packaging size option in select statement.

Regards,

Shravan G.

Read only

Former Member
0 Likes
1,445

Hi,

1) COUNTER is the key field in your CATSDB table, so use this field while you are retriving data.

2) you have used '*', instead of it select only those fields which are necessary for your report purpose.

3) you have used INTO CORRESPONDING, which will take each field (as you mentioned *) from the DB table and put in to the corresponding field of internal table. This is most time consuming process. So avoid this and use INTO TABLE.

4) still the performance goes down as the number of records are more. So i will suggest you to put DATE field in the selection screen. So you have to modify your SELECT query as per the date mentioned in the selection screen, you have to extract the data.

thanks & regards

Kishore Kumar Maram