For a long time we have a problem with mass parallel processing of IDOCs in SAP ERP. Big delay is in parallel UPDATE of BPGE table.
The description of process:
*) at night time, in SAP ERP come about 400-450 idocs at the same time.
*) now, begining processing of these idocs in RWPOS_PARA_ENQUEUE program, with 10-14 parallel streams.
*) about 10 minutes after begin, when function module SAPLKBPV is active, the BPGE table in all 14 streams locked for update. And only one process worked and switching other function modules and tables. There is no locks of all other tables: MVKE, MKPF, CE11000, S033, S110, S122 etc.
The same way looks processing idocs in RBDAPP01 program.
I will give some screenshots, showing negative load in this timeframe:
(as we see, there is a large number of oracle "enq: TX - row lock contention")
I tried too many optimizations of BPGE table:
*) creating/dropping indexes
*) put it in oracle KEEP POOL
*) change the technical parameters INITRANS, MAXTRANS, PCTFREE, PCTUSED
*) change number of parallel streams in RWPOS_PARA_ENQUEUE (or RBDAPP01)
It had no effect.
Why are the BPGE table updated? Can we update it at the end of processing, only ONCE? How can we disable this function module? (SAPLKBPV?)
If we could get rid of BPGE locks, the performance of parallel processing will increase significantly.