Tuesday, May 21, 2019

How to find out APD that have Performance Settings set to Process Data in Memory

APD processes have an option of processing all data in memory. This means that data of the APD is stored entirety in main memory while processing. It can be set in maintenance screen of the APD there in menu called Goto there is an option Process Data in Memory. Normally this shall be set on for small amounts of data.

In case large volume of data (couple of millions) are being processed like that, execution of such APD may terminate once the main memory no longer has sufficient space for the data.

Now how to find out what APDs are having this flag set on? Data element corresponding to this flag is RSAN_PROCESS_IN_MEMORY_FLAG. However, it is not saved directly in some tables. Main table that stores data about the APDs is RSANT_PROCESS. That one contain column called XML. In this column all settings like filters, mapping etc is stored. Here within the XML column there is a section called PROCESS_DATA_IN_MEMORY. If it is equal to X then it means that the APD is processed in memory.


I created small ABAP program that list out all APDs, which have Performance Settings set to Process Data in Memory. The program is available at my github.


No comments: