Renovating the ABAP Dictionary: Component-Based Dependency Analysis
If you are an ABAP developer or ABAP key-user, you have probably activated a table or a CDS View Entity before. I assume you have also spent quite a bit of time waiting for the activation to finish. We in the development of the ABAP Platform work continuously on improving your experience as developers and recently released a feature called “Component-Based Dependency Analysis”, or CBDA, to reduce runtime of the activation of dictionary objects. To give you an insight on how this works, we prepared a short video:
In the past, when you activated a dictionary object, all other objects that used this object were activated as well. In cases of big stacks of CDS views, this takes a long time and isn’t necessary most of the time. This is called “Object-Based Dependency Analysis”.
To provide an example: If you activate “Data Element 1” after changing the type from a character of length 5 to a character of length 10, the database table and both CDS views and all objects using them were activated.
Now, or to be more specific, as of ABAP Release 7.93, SAP BTP ABAP Environment 2308, CBDA is available for everyone. This means that the dependency analysis is done in a more precise way. Looking at the same example, we get a vastly different result now: CBDA notices that the data element only affects one field of the database table and therefore only follows the dependencies of this field, greatly reducing the number of activated objects.
Some performance measurements indicate huge improvements:
In common cases in development, like adding cast statements to certain fields of widely used CDS views, CBDA reduced the number of objects to be activated from over 5000 to 6, resulting in a runtime reduction of about 85%.
In extension cases, like adding extension fields at CDS view I_SalesOrder, CBDA reduced the activation time by almost 75%.
We will continue this journey of improving the dictionary activation, making it faster, easier to understand and more stable. And with CBDA, we merely completed the first step in the renovation of the ABAP Dictionary activation by reducing the number of objects to be activated. In the future, we will go ahead and speed up the activation of the objects themselves, making your work faster and more productive.