Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
chi_chiu_wong
Explorer
Introduction

In this post, I would like to share one of my project experience on performance tuning for Customer developed ABAP program from 38% improvement to 260%+ improvement after implemented SAP HANA SLT side car.

I will share some of the techniques for using sap transactions (SCI, SE30, etc) to analyze the performance bottleneck for further improvement with screens shoot captured from my work in the past which I had helped to implement SAP HANA SLT and fine tuning a customer developed report ZFI05SBL with side car.


Background - Performance Measure for customer program after implement SLT


Remark: ZFI05SBL (original program before tuning); ZFI05SBL_N (revision program tuned for SAP HANA  SLT Side car)


 

Background: We found that there was only a slight improvement on performance (i.e. 38% - 40%) after implement side car with SAP HANA SLT for the initial performance measure for customer developed program.

Since the customer wasn't happy about the result and refused to sign-off UAT, I had used SAP transactions SCI, SE30, ST05 for analyzed the performance bottleneck and identify the area for further improvement. 

 

Analysis Step 1 - Checking from Basis perspective

Before we jump into application analysis and tuning, I would suggest to start performance analysis on some basic area. (i.e. system configuration, parameter settings, etc) which is important as sometimes incorrect / non-optimal configuration in system setting may cause application performance degrade.

Most of the time, I would start using SM66 or SM50 to monitor the SAP processes running in the SAP system and view the details of the processes which I suspect with performance bottleneck that had been running for long time.

You may check for following:

  • Actions running

  • Records update

  • Activities

  • Memory statistic


(Tips 1: Heap Memory à lack of memory on ABAP instance)

(Tips 2: If program running for long time without records increases, this may be due to bottleneck on database resource.)


Example: Use SM50 / SM66 to review Memory Statistic & DB statistic for long running processes


 

In addition, I also reviewed the SAP HANA database replication processes and found that there were times that the replication processes were pending on HANA database during non-office hours.


Example: Found SAP HANA SLT process pending


 


Example: SM37 - Found replication job were in delay status


 


Example: Check SM50 and found BTC processes were fully occupied during non-office hours


 

Finding 1 - Example: Replication Process pending & delayed due to lack of background process

After checking the SM37 and SM50, I found that replication job had been delayed due to all background processes had been occupied during table replications in the non-office hours.

Therefore, I had tuned the system parameters in SAP operation mode (Tcode: RZ03) for increase number of work processes for background jobs and fine tuned the SAP HANA SLT replication server parameters.

 


Example: RZ03 - Increase BTC process in operation mode



Example: Tuning SAP LT Replication Server parameter


Analysis Step 2 - Capture original program performance as baseline

After we confirmed that the system configuration and resources is optimal, we may start to measure the customer developed program performance before tuning as baseline figures.

I had used 2 transaction ST03N and SM37 for measure the program execution time.


Example: ST03N - Workload Analysis (Transaction Profile)


Workload Analysis (ST03N)

I used transaction ST03N Transaction profile for review performance before and after SLT HANA replication and ABAP accelerator and checked for program behavior before switch the program to run on HANA database table. These figures can be used for troubleshoot and use for identify performance bottleneck.

 

Job Overview (SM37) 

I used transaction SM37 to review the job execution time before and after using SAP LT replication on HANA wand ABAP accelerator.


Example: Program variant used for performance test



Example: Use SM37 to measure program execution time


We found that the performance is improved if retrieved data with 3 months and 8 site for this report.

Time 1:

Original Execution Time: 9596

 

Time 2:

SLT Execution Time: 6941

((T2 / T1) – 1 ) * 100 = 38%

The 1st testing result is improved 38% for replicate tables on KONP, MARA, MBEW and MBEWH

Since we see that the performance is not improved a lot with ABAP Accelerator and SAP LT HANA replication. We perform the code inspection for this program to check for area need to be tuned.

 

Analysis Step 3 - SAP Code Inspector

I had used the SAP Code Inspector for analyzed the customer developed program for identify the program code required performance tuning.

You may refer to the attached URL of another article for view the detail steps on using SCI (SAP Code Inspector) for performance analysis. I am not going to repeat the basic steps here.

Reference URL for the article https://blogs.sap.com/2016/01/18/mandatory-steps-to-adapt-abap-code-for-sap-hana/


Example: Create Check Variant for SAP Code Inspector



Example: Review SAP Code Inspector result


Finding 2 - Example found some SQL statement are checking on some tables not replicated with SLT.

I had reviewed the SAP code inspector result and identified that there are some code required tuning for optimal performance for running in SAP HANA. In addition, I also found that some of the tables used in where clause filter had not replicated to SLT. Therefore, I had added the tables for replication and tuned the ABAP code per SAP recommendation.

  • Update ABAP Code per SAP recommendation for code change in HANA environment.



  • Include the tables for SLT replication and side car



Example: Sample Tuning - Revised coding per SAP recommendation on HANA platform



Example: Sample Tuning - Revised the statement and include the condition records tables into SAP SLT replication.



Example: Sample Tuning - Check the statement and ensure inner join table are included in SAP LT replications.


 


Example: Sample Tuning - Included the tables used in inner join for SAP LT replication



Example: Sample Tuning - Included the table for side car


 

Review Program execution time after tuning

After performed the tuning, I had execute the program with SM37 at different timeslot with same program variant selection to verify the performance had improved after tuning.

This time I found that the program execution time had improved around 95% to 104% for 3rd to 6th round of testing in different timeslot.

 




















































No. Time 1 Time 2 Ratio % Improvement
1st Round 9596 6941 1.38 38.25%
2nd Round 9596 6888 1.39 39.31%
3rd Round 9596 4685 2.05 104.82%
4th Round 9596 4737 2.03 102.58%
5th Round 9596 4719 2.03 103.35%
6th Round 9596 4903 1.96 95.72%

Remark: Calculation of % of Improvement:  ((T2/T1) – 1 * 100%)

1st - 2nd round – execution after using activate ABAP accelerator.

3rd – 6th round – execute after tuning by adding additional tables for push down database operations to HANA database.


Example: Use SM37 to review program execution time after tuning


 

Review ABAP Analysis (SE30)

Although I had verified that the program execution time had improved, I had further checked the ABAP program with transaction SE30 for identified the area can be further fine tuned.

Tips: I usually check on the Net(%) for identify the area should be review for further improvement.


Example: Review SE30 ABAP Analysis result


 

Final Review in program execution time after deployment to production system

At last we had compared the original program and the fine tuned program in production system.

We measured the program execution time between original program and the fine tuned side car version using identical program variant for selection and found significant improvement as below for 8th to 12th round of the performance testing.






























































































No. Time 1 Time 2 Ratio % Improvement
1st Round 9596 6941 1.38 38.25%
2nd Round 9596 6888 1.39 39.31%
3rd Round 9596 4685 2.05 104.82%
4th Round 9596 4737 2.03 102.58%
5th Round 9596 4719 2.03 103.35%
6th Round 9596 4903 1.96 95.72%
7th Round 9596 7967 1.20 20.45%
8th Round 9596 1042 9.21 820.92%
9th Round 9596 1190 8.06 706.39%
10th Round 9596 1554 6.18 517.50%
11th Round 9596 1166 8.23 722.98%
12th Round 9596 2602 3.69 268.79%

 


Example: Use SM37 to review program execution in production system.


Remark: ZFI055SBL is original program; ZFI055SBL_N is the tuned side car version with SAP HANA SLT.

In conclusion, we may improve the customer developed program using SAP HANA SLT (side car) with optimal setting in replication server & SAP server.

 

Summary of the sample tuning task for this demonstration:

  • Basis Tuning: Increased the process for the SAP LT Replication Jobs and reviewed parameter tuning for SAP HANA and SAP System

  • ABAP Tuning: Change the ABAP code per SAP recommendation on HANA platform

  • Included the transaction tables, master data table (i.e. condition records, etc) used for inner join and lookup in the SAP SLT Replications for ensure the optimal performance.

  • Configured Side car to use replicated tables.


I hope this blog can help you with your SAP HANA SLT project in future.

 

 

 
1 Comment
Labels in this area