Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
CarineTchoutouo
Product and Topic Expert
Product and Topic Expert

This is the 2nd blog from the DEV201@TechEd 2014 blog series which is compiling the demo-rich session DEV201 (Overview of ABAP 7.4 Development for SAP HANA) that was held at SAP TechEd && d-code 2014 in Las Vegas and Berlin. I'm also using this opportunity to refer you to some interesting blogs and documents available on the topic.

The blog series comprises three posts:

  1. DEV201@TechEd 2014 Part 1: Introduction into ABAP 7.4 Development for SAP HANA
  2. DEV201@TechEd 2014 Part 2: Detect custom ABAP code to be adapted (current blog)
  3. DEV201@TechEd 2014 Part 3: Optimize your custom ABAP code

Let’s go ahead...


Detect ABAP custom code to be adapted

"Will my custom ABAP code still work on SAP HANA?"  is one of the major customer questions in the context of the migration of their existing ABAP-based software (e.g. SAP Business Suite or SAP Business Warehouse) to SAP HANA. The question mainly relates to two areas in which code corrections and adaptations may be required before the migration in order to avoid regressions:

  • Functional correctness
  • (SQL) Performance.

Before going ahead, I would like to draw your attention to the fact that a migration to SAP HANA is JUST a database migration. The different problematics are common to all databases, but their solutions may be database-specific. Therefore, there is nothing really new here! :smile: .

What should be detected?

Regarding the functional correctness:

After a SAP HANA migration, everything works as before, except:

  • Native SQL (EXEC or ADBC) with vendor-specific statements
  • Database hints
  • Non-robust code relying on undocumented behaviors such as implicit DB sorting order or access to technical pools/clusters of a pool/cluster table
  • Code relying on the existence of secondary DB indices

The detection of such code constructs is essential and their appropriate correction/adjustment are two mandatory

tasks before a migration as a functional regression is a total no-go for running businesses.

Notes:

- Although DB hints are DB-specific, they generally do not need to be adapted in the context of a HANA migration

- ORDER BY clause or ABAP SORT must be expilicitly specified for code relying on data sorting order

- Pool and cluster tables are converted into transparent tables during a SAP HANA migration

- Indices are not generated after a SAP HANA migration in most cases

Regarding the performance:

After a SAP HANA migration, a well-written ABAP code runs immediately faster, especially code with a long database processing time. And so remains a poorly-written code as such.

“Well-written” and "poorly-written" are meant here according to the classical performance rules for efficient SQL programming.


Thus it is important to detect potential candidates for optimization by searching for critical SQL constructs - especially those ones with a low DB performance profile. Adapting them before the migration is not mandatory, but may be required in some cases.

The performance plays an important role during the whole software lifecycle - as regressions should be constantly avoided, thus the detection of tunable code is a task that is relevant before and after the migration in order to fully exploit the power of SAP HANA (refer to the classical and the adjusted SQL Performance rules).

But don't forget that you - as customer - are the one deciding how performant your application should be and so defining the scope of detection and optimization activities to be performed.

Which support do I get from SAP?

To assist you in your different detection activities, SAP NetWeaver AS ABAP 7.4 provides advanced quality assurance tooling. Three major tools can be named:

  • ABAP Test Cockpit (transaction SATC)
  • SQL Monitor (transaction SQLM)
  • SQL Performance Tuning Worklist (transaction SWLT)

In the context of performance analysis, these tools provide an incredible support in identifying the most promising candidates for performance optimization (focus on hotspots). They can be used in a all contexts (HANA and non-HANA) and are also available on lower releases as part of the standard delivery as of AS ABAP 7.02 (SP12/SP14) or as ST-PI add-on.

ABAP Test Cockpit

The ABAP Test Cockpit (ATC) is the standard tool for running static code checks on ABAP development objects. The different findings (functional, performance, security, bugs, …) are reported in a prioritized list. The ATC framework enhances the well-known Code Inspector with new quality assurance processes such as quality gates, exemption approval process and periodic regression tests in a quality system. ATC is fully integrated in the standard development environments (with eclipse-based UI in ADT) and transport tools. Read more (general info)...

ATC is the basis for a smooth SAP HANA migration of custom ABAP code. It assists you in detecting potential functional and performance issues during the transition. As already mentioned. For this purpose, new checks and global check variants (FUNCTIONAL_DB and PERFORMANCE_DB) are provided. Read more (HANA specific)...

Remote static ABAP code checks can be performed on lower SAP NetWeaver releases where neither the check infrastructure or the new code checks are not available (refer to SAP Note 2011106).

SQL Monitor

SQL Monitor is the recommended standard performance analysis tool when it comes to the runtime monitoring of productive systems without impacting the running business processes. It allows the collection of an extensive set of runtime information (e.g. entry points, elapsed time, records read, …) for each and  every executed SQL statement and thus provides a transparent SQL profile of productive systems. The collected monitoring data are linked to their related ABAP processes (transaction, report name, …) and different aggregation and drill-down options to the related DB operations are provided. The integration of the SQL Trace (ST05) allows a more detailed investigation of given ABAP processes.

SQL Monitor supports you in identifying promising candidates for performance optimization with a high ratio performance improvement and optimization efforts. the tool is part of the standard delivery as of AS ABAP 7.02 SP14 and also available as ST-PI add-on (ST-PI 2008_1_700 SP8) for lower releases (ABAP 7.0 and beyond). Read more ...

SQL Performance Tuning Worklist

SQL Performance Tuning Worklist offers the possibility to combine the results from the static code checks and the runtime analysis, hence providing a more comprehensive view of the different results. The tool is quite helpful for beginners and advanced users while weighting the reported static check results. The typical approach is to start the identification of performance hotspots with the combined list and then to switch to the more powerful SQL Monitor to deepen the analysis of the root cause – as it provides more insights. The experience shows that experts will find their way directly into the SQL Monitor. Watch this video...

Guides and Best Practices

In addition to the advanced analysis tooling and the standard documentation in SAP Help portal, guides and best practices written by our experts are provided:


As next step I'll provide a compact overview of the different programming capabilities delivered with AS ABAP 7.4 which can be used for writing ABAP code optimized for HANA.

Looking for the next and last post of the series? Here you go: DEV201@TechEd 2014 Part 3: Optimize your custom ABAP code

2 Comments