cancel
Showing results for 
Search instead for 
Did you mean: 

DBSQL_FAE_STATEMENT_TO_BIG - SELECT with FOR ALL ENTRIES

Sandra_Rossi
Active Contributor
0 Kudos
194

I just experienced a production bug DBSQL_FAE_STATEMENT_TO_BIG in the below SELECT, which was impossible to reproduce in a duplicate system and I couldn't find any SAP note.

Below is all the information I could gather, do you have any idea what could be the dump reason, how to solve?

Note that we'll try a solution in production (no other way!) which loads the whole Z buffered table in memory (SELECT without WHERE), then filter out the lines. I won't be able to test anything else, except if this solution doesn't solve.

EDIT March 19th: removing the whole WHERE clause has solved the issue (the lines are removed by DELETE itab after SELECT).

Thank you for reading!

Sandra

 

Short dump: The termination was triggered in function "DbFaeCursor::errorFaeSize" of the SAP kernel, in line 1219 of module "//bas/753_STACK/src/krn/dbi/dbsql/dbfaecursor.cpp#10". The internal operation just processed is "SQLN". Internal mode started at 20250306011217. The value of "values_sz" is 183846. This is greater than value 130000 of "buffersize".

The program was running in parallel (I don't know how many parallel threads were running at that time).

The duplicate system is theoretically the same as the production system, but I have no access to the production system to make sure the configuration is exactly the same.

The profile parameter dbs/ora/array_buf_size in the duplicate system is -1.

That's the faulty SELECT:

SELECT 6 small columns
FROM a Z buffered table
FOR ALL ENTRIES IN @fae_itab
WHERE bukrs = @fae_itab-bukrs
  AND belnr = @fae_itab-ebeln
  AND gjahr = @fae_itab-gjahr
  AND fistl IN @range_fistl
INTO TABLE @DATA(result). 

The Z buffered table contains total of 7000 lines.

The FAE itab contains 2 lines.

The FISTL range contains 5700 lines dans FISTL IN @IR_FISTL. Note that there's no dump on the other systems, we even tested up to 45000 lines.

The SELECT should have returned 2 lines (2 lines in the original table, no duplicates).

Environment: ECC 6.0, ABAP 7.40 SP 23, Kernel 753 SP 1300, Oracle 19.14.0.0

View Entire Topic
ulrich_mhrke
Explorer

I would suggest performing the selection without the condition for fistl and then checking fistl in a loop over the result table.

Sandra_Rossi
Active Contributor
0 Kudos
Thanks. I guess it might be solving but I'm sorry not being able to test it, due to what I was saying in my question. NB: I just added the follow-up in my question that the mentioned fix worked.