Lets know what ABAP Performance analysis Tools like SCI – Code Inspector ST05 – Performance Trace SE30 ABAP Runtime Analysis are there in SAP ABAP to help in performance tuning.
What Performance analysis tools and transactions in SAP ABAP that can be used to help with performance tuning?
ST05 is the performance trace. It contain the SQL Trace plus RFC, enqueue and buffer trace. Mainly the SQL trace is is used to measure the performance of the select statements of the program.
SE30 is the Runtime Analysis transaction and can be used to measure the application performance.
SAT transaction is the replacement of the pretty outdated SE30. Provides same functionality as SE30 plus some additional features.
ST12 transaction (part of ST-A/PI software component) is a combination of ST05 and SAT. Very powerful performance analysis tool used primarily by SAP Support.
One of the best tools for static performance analyzing is Code Inspector (SCI). There are many options for finding common mistakes and possible performance bottlenecks.
SAP HANA Partitioning, Data Replication, Memory algorithms, Data Layout in the Main Memory
ABAP Performance analysis Tools: Code Inspector SCI
Static analysis of the quality of the code. Scans your program code and reports on potential problems particularly in the area of performance and security.
Benefits: Analysis of SQL WHERE clause of SELECT, UPDATE and DELETE statements. Identifies select statements that do not handle sy-subrc return codes Use of statements that infer ominous database access Identifies statements that bypass buffering Drill through support from results screen to program source statement. Etc.
Disadvantages: Static checks cannot identify the relevancy of a piece of code Cannot determine the frequency of execution of a statement of code.
Standard Checks Performed
Syntax checks and program generation
- Normal ABAP syntax check
- Extended Program Check
- Program Generation
Security checks
- Use of statements deemed critical
- Use of statements the infers ominous database access
- Selected statements that do not handle system return code
Performance checks
- Select statements that implicitly bypass SAP table buffers
- Check statements inside of SELETCT…ENDSELECT loops
- Nested loops over internal tables and nested SELECT statements
- Analysis of WHERE clause to determine support database indices
Search operations
- Search for single tokens
- Search for complete statements
Access directly from the Abap Editor, from SE38 or SE80

ABAP Performance analysis Tools: Performance Trace ST05
- Used to analyze and fine-tune program’s database access
- Dynamic analysis
- Must be logged into processor where job is running that is subject to the trace
- Should pre-load the application before trace is started
- Should strive to use this trace in QA unless production problem cannot be re-created.
Types of traces available
- SQL Trace
- Enqueue Trace
- RFC Trace
- Buffer Trace
Execute ST05 tcode

ABAP Performance analysis Tools: Runtime Analysis SE30
SE30 is the Runtime Analysis transaction and can be used to measure the application performance.
SAT transaction is the replacement of the pretty outdated SE30. Provides same functionality as SE30 plus some additional features.
Three phases of the ABAP runtime analysis.
- Setting limits for the data that is measured
- Measuring the data
- Analyzing the data.
Execute SE30 for ABAP Runtime Analysis


SQL Statement Evaluation Checklist
Is there any SELECT * statements in use?
- Change them to SELECT COL1,COL2,COL3 specifying columns
Are any CHECK statements embedded in SELECT..ENDSELECTs
- Incorporate the check statement logic in WHERE clause
Do SELECTs use appropriate DB Index or is table buffered?
- Change logic, create an index, or buffer table
Is nested SELECTs being used to retrieve data?
- Convert to DB join, view or SELECT FOR ALL ENTRIES IN ITAB
Are there SELECTs without WHERE clauses, on tables that grow?
- You need to redesign the solution.
Are SELECTs to master data tables buffered?
- Store master data in itab and use READ TABLE…BINARY SEARCH to eliminate duplicate access with same key
Is SELECT…APPEND ITAB…ENDSELECT being used?
- Change processing to read data immediately into ITAB
Is SELECT ORDER BY statements being used?
- Read data to ITAB and then sort, unless DB Index supports order by.
Is program using calculations and summations that can be done on the database via SUM, AVG, MIN or MAX functions of SELECT?
- Use the calculations available on the SELECT statement.
Are ITABs processed using READ TABLE itab WITH KEY?
- Change table accesses to use BINARY SEARCH method.