Hi all,
in the last days i faced the Problem that a join of two of our own tables ran longer in SAPM than in production.
All statistics and reorgs are made. Parameters are the same. But in SAPM i got a full-table-scan instead of index access via BNDTA_AGNR which is selectiv enough.
That is the join part of our program:
INTO CORRESPONDING FIELDS OF TABLE e_tab_nko_npo
FROM /gkv/cd01_bn_npo AS a
INNER JOIN /gkv/cd01_bn_nko AS b
ON a~bn_lfdnr = b~bn_lfdnr
FOR ALL ENTRIES IN i_tab_schaetz
WHERE b~obtyp = i_tab_schaetz-obtyp AND
b~bndta_agnr = i_tab_schaetz-obgrf
and that is the part of the SQL-statement that ran slow:
FROM
"/GKV/CD01_BN_NPO" "A" INNER JOIN
"/GKV/CD01_BN_NKO" "B"
ON "A"."MANDT"="B"."MANDT" -- that's new
AND "A"."BN_LFDNR"="B"."BN_LFDNR"
WHERE "A"."MANDT"=:A0
AND "B"."OBTYP"=:A1
AND "B"."BNDTA_AGNR"=:A2
And that the same part of the SQL-statement from production that ran fast
FROM
"/GKV/CD01_BN_NPO" T_00 INNER JOIN
"/GKV/CD01_BN_NKO" T_01
ON T_01."MANDT"=:A0
AND T_00."BN_LFDNR"=T_01."BN_LFDNR"
WHERE T_00."MANDT"=:A1
AND T_01."OBTYP"=:A2
AND T_01."BNDTA_AGNR"=:A3
The point is that production is on 7.31 but the newer SAP is on 7.40.
I search on "alias t_00" and found 2029981 - DBSL: Replacement of invalid aliases in Oracle
hints
Here we can read that the naming of the alias has changed.
And it seems that implementation of the access to CLIENT or MANDT has changed too.
Is there a chance to get back the old behaviour ?
best regards
Kay