EIM batch loading always facing with performance problem and always need a tuning process in order to make it work!
I would like to share some guidelines to tune EIM
- Turn off Transaction Logging will improve the performance. Please try to check with the mobile client users to make sure that they are not impacted during the EIM Run.
- Limit amount of record per batch number. Usually I use 1000 records per batch for optimum performances.
- Use Batch Ranges to limit certain amount of batch to be run. Only 1000 Batches can be run per 1 EIM Task.
- Perform scheduled Index rebuild and Reorganization of Siebel Base and EIM Tables to maintain good performance. Frequent Insert and Delete operations on Tables can cause fragmentation.Consult your DBA based on the DB Platform that you used.
- Do not leave old batches in EIM Table after running. Purge old batches on scheduled basis.
- EIM jobs can be run in parallel, must consider DB Server capabilities in terms of Hardware Spec and Database Features.
- Set “USING SYNONYMS” parameter in IFB File to FALSE
- Limit Table and Columns by using “ONLY BASE TABLES/COLUMNS” or “IGNORE BASE TABLES/COLUMNS” in IFB File in order to minimize the processing time during EIM Run.
- You can drop indexes that are not being used during EIM Run and rebuild after the EIM Process has finished. This will shorten the time compared to each time the EIM run, the process need to update the indexes.
- Avoid using Custom Primary MVG Field in Siebel Configurations that might needed for EIM Batch Upload, as it may cause an Implicit Update Primary which can really slow down the performance.
- Set “UPDATE STATISTICS” parameter in IFB File to FALSE. The Index statistics can be rebuild in bulk manner afterwards which has proven to be faster.
- Disable Archive Logging during initial data load. Can enable again after load.
I often use this steps in order to troubleshoot any performance problem:
- Try to find out the long running SQL by analyzing the time taken to execute it. There are several ways to do it such as to rerun the EIM process using parameter Trace Flag =1 and SQL Trace Flag = 8. The EIM Log sizes will be larger than usual. There you can see the SQL generated. While the other is using SQLPROFILE parameter in IFB File.
- Monitor the DB Server to find out that there might be other activities which consuming the server resources. things i always check is the utilization level, lock dependency, rollback segment and tablespace sizes.
- Try to Rebuild Index, Statistics or maybe reorganization if needed.
Finally, hope this might give you an insight to solve the issue.
No comments:
Post a Comment