Hi Lars & Sergio,
first of all thanks for your input - secondly, sorry about my late response.
Requirements has developer a bit since the sql statement i pasted above - as well have an implementation been done - I'm however not satisfied by the performance.
The raw SQL is as follows:
SELECT b."BILL_NUM", b."BILL_ITEM", b."BILL_DATE", b."DOC_CURRCY", b."MATERIAL", t."/BIC/TRADE_ID", c."/BIC/CUSHIER6", c."CUST_SALES", b."NETVAL_INV", b."BILL_QTY", c."DATEFROM", c."DATETO"
INNERJOIN"/BIC/MTRADE_ID"AS t ON c."/BIC/CUSHIER6" = t."/BIC/CUSHIER6"
|
However it is implented and used in ABAP - in a for all entries statement:
IF gi_material IS NOT INITIAL. |
for 25000 records in gi_material the execution time for the for all entries statement is 3-4 min. Over time that will increase if nothing is done as we get more and more data into those tables.
I would like to minimize the execution time as the program is running every 5 min.
The HANA revision in use is 85.02. It is on a scale-out platform running BW on HANA, hence the big DSO tables (/BIC/A*00) are partitioned using HASH partitioning (hence standard partitioning in BW on HANA).
The explain plan for the raw SQL is as follows:
The virtualized plan (prepared) looks as follows:
Details for the high cost part:
Any idea on how I can optimize? (create the stuff in views instead and consume that given view as a DDIC object in ABAP? utilize CDS views? etc)
Thanks in advance. KR
Torben
