08-09-2006 10:50 AM
Hi,
When I run a z transaction it gives the following error.
"ABAP runtime errors
Each transaction requires some main memory space to process application data. If the operating system cannot provide any more space, the transaction is terminated."
The program contains two SELECT queries .The first SELECT statement retrieves 700000 entries . In the next SELECT
statement I am using for all entries of the previous table.
Please help me how to solve this issue.
Thanks,
Amit
08-09-2006 10:53 AM
Hello,
do the processing in picecs, not in one go. Like select data for one month, then the second and go on...
regards,
Naimesh
08-09-2006 10:53 AM
Hello,
do the processing in picecs, not in one go. Like select data for one month, then the second and go on...
regards,
Naimesh
08-09-2006 10:54 AM
use packet of data.
or contect ur basis person to increase memory size.
08-09-2006 10:54 AM
Hi,
Try performance tuning of this program.
1. Use OPEN CURSOR w_cursor .. then your select statement
2. Then say fetch next cursor
That way limit the records in each fetch.
Rgds,
HR
08-09-2006 10:55 AM
Hi Amit,
Try to avoid FOR ALL ENTRIES where the base table is having such huge data. FOR ALL ENTRIES is a loop so that many times it will go to the database to ftech the data.
Instead use direct select and get more data at one shot instead of trying to restrict in a loop.
Write direct selects and bring all the data in the itab and then use READ with binary search and restrict the data in the program.
Cheers
VJ
08-09-2006 11:03 AM
Hi amit,
1. we can use the package concept,
to get data
in bunches
(instead of getting in one shot)
2. just copy paste to get a taste of it
3.
REPORT abc.
DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
DATA : ctr TYPE i.
*----
selection screen.
PARAMETERS : a TYPE c.
*----
START-OF-SELECTION.
SELECT * FROM t001
INTO TABLE t001
PACKAGE SIZE 5 .
ctr = ctr + 1.
WRITE 😕 '----
Loop Pass # ' , ctr.
LOOP AT t001.
WRITE 😕 t001-bukrs , t001-butxt.
ENDLOOP.
ENDSELECT.
regards,
amit m.