cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

DBSQL_FAE_STATEMENT_TO_BIG - SELECT with FOR ALL ENTRIES

Sandra_Rossi
Active Contributor
0 Likes
802

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

Accepted Solutions (0)

Answers (2)

Answers (2)

ulrich_mhrke
Participant

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 Likes
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.
Sandra_Rossi
Active Contributor
0 Likes

The whole WHERE clause was removed to load the whole Z buffered table into the internal table, then the lines were filtered out from the internal table.

This fix has solved the issue.

Other answers may possibly fix the issue, but I can't test them because I can't reproduce the issue outside the production environment.