BDLS Performance Problems

Purpose

Purpose

This wiki will go through the main performance improvement tecchniques available when changing the logical system name via BDLS.

Overview

What transaction BDLS does is it looks for all references to fields of data type "LOGSYS" and "EDI_PARNUM" and changes these values to the new logical system name (from the old one). Hence even though some other tables may refer to the old logical system name these names will only be converted if their data type is either "LOGSYS" or "EDI_PARNUM". All other field references to the old logical system name have to be changed manually and will not be included in the BDLS conversion. The conversion can take very long (a few days etc.) if the relevant tables have a lot of entries (e.g. COEP is always a problem). The bottleneck of the conversion process is always the database access, not the report!

Resolution

Run in Test Mode.
When running BDLS you should always run it in "Test Mode" first. This will give you a list of entries to be converted and also an idea of how long the real run will take. It also speeds up the real run a lot as it no longer has to check every table for references to "LOGSYS" or "EDI_PARNUM". You can then use this list to execute specific conversions in parallel for certain larger tables if need be or exclude some tables.
Run in Parallel.
With release 620 the design and technique was changed and with this change the ability to run BDLS in parallel was lost. Because of the design, we can't run parallel runs with the new report. However, it's possible to use the old report RBDLS2LS for the conversion and there is no disadvantage to using this. When you execute this report from SE38 it generates a report RBDLSXXX (XXX is the client number) which can be used for the conversion. So execute RBDLS2LS directly for parallel conversions.
Specific conversion for large tables.
It is also possible to exclude tables from BDLS or to convert specific tables in parallel (e.g. COEP). To do this, you can either do it maually by making the required entries in the table "BDLSEXZ" as specified in note 932032
  • OR -
You can run the report RBDLS2LS directly and enter the tables you DO want to convert in the "Tables for conversion" selection box and leave out the tables you don't want to convert. You can run the report multiple times and use specific conversions for the larger tables like COEP. Below is the view of generated report RBDLSXXX 

Other methods

Finally, here are some other non-supported ways to speed up the process. Please note that these methods are just suggestions and any issues encountered will not be supported by SAP. See note 83020
Change directly on the database with your own report. You can get a list of any references to EDI_PARNUM or LOGSYS from a "test run" of BDLS.
Another possibility is to create your own index. This is one of the possibilities customers have to get a better performance. Please have a look at note 44341 which gives more information about that.
Change the SELECT statement. The automatically generated program RBDLS* uses SELECT statements which give the best performance in average for all of the tables. If you see an upgrade for one single table, you can do this via copying program RBDLS*** after generation and changing the affected SELECT statement. So you can use your own program instead of the automatically generated. The generator uses a technique to ensure that the performance is maximised for the majority of the tables. Of course there are improvements possible for special tables.

No comments: