‎2006 Jun 29 11:50 AM
Is there any special method for performance tuning for the BDC program. Is it different that the normal performance tuning?
Regards,
Subhasish
‎2006 Jun 29 11:51 AM
No its not different from performance tuning of any other program.
regards,
Ravi
‎2006 Jun 29 11:51 AM
No its not different from performance tuning of any other program.
regards,
Ravi
‎2006 Jun 29 11:55 AM
I donn think there is any different techniques for BDC.
Please goto transaction SE30 for performance tuning tips and tricks.
regards,
Sumit.
‎2006 Jun 29 11:55 AM
Subhasish,
You should use the same pefrormance tunning methods like <b>SE30</b> for BDC as well.
rgds,
TM
‎2006 Jun 29 11:56 AM
no same for all .
ST05,SE30..
use COMMITWORK. after tecords update.
little bit hepful..
Regards,
Ramesh.
‎2006 Jun 29 11:58 AM
Subhasish,
Here are some useful transactions to help you.
SM50 Process Overview
SM51 App. Servers Overview
STAT Display Statistical Records
ST05 SQL Trace
SE30 Runtime Analysis
ST03 Analysis of Workload
DB02 Database Performance : Tables and Indexes.
DB05 Analysis of Table w.r.t. Indexed Fields
ST04 Database Performance Analysis : Oracle View
SM66 Global Work Process Overview (Over All App Servers)
Regards
David
‎2006 Jun 29 1:06 PM
Hi Subhasish,
There is no hard and fast rule to improve performance for BDC programs. The following guidelines are useful.
1) Try to reduce Nested LOOPS if any.
2) Avoid select statements inside the LOOP.
3) Use READ TABLE with Binary Search using the key fields(The internal table should be sorted).
4) If you are using Transactions like IA06(Change Task List), ME22(PO change) etc. try to include all the line items at one shot for the corresponding (it can be create, change) header.
Regards,
Arun Sambargi.
Message was edited by: Arun Sambargi
‎2006 Jun 29 1:55 PM
Better Option is Going for BAPI , adv of BAPI is u can avoid Screen Flow.
Regards
Prabhu
‎2013 Jun 20 11:03 AM
Hi Subhasish,
Not exactly performance tuning for BDC but a slight modification can improve performance of the program if BDC is involved with a very large volume of data.
Instead of calling the BDC performs like:
PERFORM bdc_dynpro USING 'SAPMF05A' '0122'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BKPF-BKTXT'.
we can demodularize these performs and directly write the code commenting the performs like :
*PERFORM bdc_dynpro USING 'SAPMF05A' '0122'.
CLEAR it_bdcdata.
it_bdcdata-program = 'SAPMF05A'.
it_bdcdata-dynpro = '0122'.
it_bdcdata-dynbegin = c_x.
APPEND it_bdcdata.
*PERFORM bdc_field USING 'BDC_CURSOR'
* 'BKPF-BKTXT'.
CLEAR it_bdcdata.
it_bdcdata-fnam = 'BDC_CURSOR'.
it_bdcdata-fval = 'BKPF-BKTXT'.
APPEND it_bdcdata.
and in case of field performs in which variables are passed, it is better to use the IF..ENDIF condition unlike above where we were dealing with text.
Eg:
* PERFORM bdc_field USING 'BKPF-WAERS'
* wa_bsis-waers.
IF wa_bsis-waers <> space.
CLEAR it_bdcdata.
it_bdcdata-fnam = 'BKPF-WAERS'.
it_bdcdata-fval = wa_bsis-waers.
APPEND it_bdcdata.
ENDIF.
In this way we can save the small time needed in calling the module. Implemented this in a program and was able to save more than 20mins because of this change when dealing with around 26000 lines.
This demodularization should be done very carefully and should be properly commented or else this could lead to big mess.
Thanks
Shivam