We are comparing performance between a classic R/3 and a S/4 system, and simple selects from standard function modules ( e.g. selecting records from an IDoc table ) look different in S/4.
The most interesting things are those:
- The S/4 brings less performance, than R/3 ( with same amount of records stored in the db table )
- When we see ( in this case in a
FOR ALL ENTRIES
A.K.A. FAE )WHERE STATUS = 69
orFLAG ="X"
inside the R/3, we see this prefixed with an N, likeFLAG = N"X"
....
I assume, this stands for negation, BUT the code says clearly EQUALS. And because the performance is so bad compared to S/4, I assumed, the S/4 somehow sometimes cannot deal with FAE and one of the side-effects is, to negate the where clause on the fields of the FAE-related source-table...
What does this N
stand for ?
FLAG=N"X"
It does not mean negation, it means the value is sent down to HANA as a Unicode hardcoded value (NCHAR).
S4 performance
This was not directly asked, but I think it is imporant to also answer. There can be several reasons why R3 is sometimes faster:
In my experience these are the typical cases where S4 is slower than R3.