This is a test message to test the length of the message box.
Login
|
BTP Interface Performance
Created by Software-Heroes

BTP - External Entity (Performance)

353

External entities are becoming increasingly common in side-by-side development and can be used for fast access to On-Prem systems. Let's take another look at the performance of the common protocols and make a comparison.

Advertising


In this article, we'll examine the performance of current technologies in BTP and compare them to External Entities, exploring the remaining potential of these technologies.

 

Introduction

A while ago, we conducted an initial performance check and compared various technologies. These included the classic RFC function module, an OData service, calling Plain HTTP, and the different protocols in the OData version. External Entities and SQL Services are now also very effective tools. We wrote an article a while ago about how to connect to and use SQL Services.

 

Performance Test

In this chapter, we will conduct the performance test and examine the performance of the External Entity compared to other technologies.

 

Change

To do this, we will implement another method in our performance class. For the most part, we will adopt the logic that we have already implemented in the function module, namely the dynamic determination of the fields to be queried. We must also incorporate this logic into the method. Otherwise, we can directly perform the SELECT statement on our external entity and specify all parameters in the SELECT statement. This is therefore the simplest implementation when it comes to access.

DATA(fields_for_select) = ``.
LOOP AT request_data-fields REFERENCE INTO DATA(field_name).
  IF fields_for_select <> ``.
    fields_for_select &&= `, `.
  ENDIF.
  fields_for_select &&= field_name->*.
ENDLOOP.

IF fields_for_select IS INITIAL.
  fields_for_select = `*`.
ENDIF.

SELECT FROM ZBS_X_DemoSQLPerformance
  FIELDS (fields_for_select)
  ORDER BY identifier
  INTO CORRESPONDING FIELDS OF TABLE @result-data_sql
  UP TO @request_data-top ROWS
  OFFSET @request_data-skip.

 

Measurement

In this case, we run all test cases again. However, we aggregate the results and perform five runs of each individual test and calculate the average of these results to obtain a number for comparison. Should larger deviations occur again, as was the case with the HTTP issue, we would factor them out to obtain approximate values for the technology and to filter out buffer or framework problems.

Test case RFC OData v2 OData v4 Plain ODBC
1) All fields, 100 entries 0.0001974 0.0968772 0.0566320 0.0560822 0.0176878
2) All fields, 5000 entries 0.0000838 0.0519070 0.0558266 0.0594702 0.0006724
3) No BLOB, 5000 entries 0.0000828 0.0512526 0.0541890 0.0526280 0.0005588
4) No BLOB, Many Executions 0.0014420 2.6958415 2.7313832 2.7684515 0.0246350
5) No BLOB, Many Executions 0.0012240 2.7285206 2.7187874 2.7532992 0.0199588
6) Value help, 500 entries 0.0000700 0.0523770 0.0522008 0.0536764 0.0005452
7) Value Help, Many Executions 0.0019522 4.1232185 4.1494144 4.1229534 0.0306726
8) Value Help, Many Executions 0.0020306 4.1087664 4.1139344 3.9871483 0.0266906

 

Evaluation

Basically, a similar result is obtained as in the last performance measurement, at least for the other technologies. In this comparison, we'll take a look at RFC and ODBC, as these technologies are relatively similar and will form the basis of today's comparison. Essentially, RFC is still the fastest protocol in terms of implementation. However, in the next chapter, we'll examine why ODBC is currently lagging behind and what might happen in the future.

Looking at the numbers, ODBC is roughly ten times slower than RFC, but about one hundred times faster than the other technologies. This means that there is significant potential for achieving high-performance interfaces and data connections via ODBC. However, smaller outliers are noticeable again, which don't fit the figures and, for example, as in the first test case, are quite far apart.

This technology is still in its infancy. This means that errors can occur or incorrect access plans can be used. However, the correct data is generally delivered. SAP will certainly continue to optimize this technology in the coming years to enable better integration scenarios and also increase performance.

 

ODBC

Why ODBC? The technology currently has several facets when you look at it: It's implemented via External Entities, we use SQL services to access it on the other side, and the name SDA was also floated. But if we look at the connection itself, ODBC drivers are used to enable access.

 

Current

So why do we still see so much potential in the technology? Let's look at an overview of the current setup and access paths in our scenario.

On the left, we have the ABAP environment where we've set up the External Entity with the Communication Arrangement. This Communication Arrangement communicates with the virtual table on the HANA Cloud via the HANA ODBC driver. The HANA Cloud, in turn, performs authentication against the SAP system via the Cloud Connector using an ABAP ODBC driver. On the other side, we're using an SQL service and a Core Data Service. This means that currently we have two different drivers and a HANA Cloud that we don't actually need. Currently, the scenario with direct access is not supported; certain technical prerequisites must first be established for this to work.

 

Currently, Principal Propagation is also not supported. This means we always have Basic Authentication (or a certificate) involved in the communication, which in turn doesn't properly support Access Control. What would be the advantage of this? We access a standard Core Data Service, use Access Control, and only receive the data we are authorized to access. Therefore, we also need to implement an authorization concept in the interim solution.

 

Future

This means that at the moment we have an interim solution that already runs very efficiently, but again requires performance for access. In the future, the whole thing should work so that the Communication Arrangement communicates directly with the SQL service via the Cloud Connector and we only use the ABAP ODBC driver. This will allow us to eliminate the need for the HANA Cloud, the virtual table, the hop, and the HANA ODBC driver. This means that there is fundamentally high performance potential here.

 

This means that if the intermediate solution is deactivated in the future and we access it via principal propagation, we have a certain potential to save objects. We can directly utilize the access control within the system, and we have significant potential for improved access performance, which will increase modeling and usage many times over.

 

Conclusion

The technology already exists and promises high potential in terms of usage and performance for efficiently building side-by-side scenarios. However, this doesn't mean we shouldn't use it now; rather, we can consciously employ it to implement certain scenarios. The technology should definitely be kept in mind, as it offers the greatest potential for efficiently implementing more side-by-side scenarios in the future.


Included topics:
BTPABAP EnvironmentInterfacePerformanceExternal Entity
Comments (0)



And further ...

Are you satisfied with the content of the article? We post new content in the ABAP area every Tuesday and Friday and irregularly in all other areas. Take a look at our tools and apps, we provide them free of charge.


BTP - News Apps

Category - ABAP

The News app for managing news on My Home has now been rolled out in the ABAP environment. In this article, we'll take a look at the app and its configuration.

07/10/2026

BTP - Table Entity and Includes

Category - ABAP

Table Entity for the Draft in the RAP object? We also check Includes and Aspects and rebuild our RAP object to the new entities.

06/23/2026

RAP - Hybrid Pattern

Category - ABAP

Let's take a look at the hybrid pattern in the development of RAP objects. Who is this scenario intended for, how does it work, and what basic components are needed?

06/19/2026

BTP - Connect On-Prem (SQL Service)

Category - ABAP

How can we connect an on-premise SQL service to our ABAP environment, and what advantages does this offer? Let's take a technical deep dive.

05/29/2026

RAP - Implement Change Documents (native)

Category - ABAP

If you have the appropriate release, you can now implement change documents natively in RAP without much manual implementation. Let's look at the different steps.

04/24/2026