Registration

Dear SAP Community Member,
In order to fully benefit from what the SAP Community has to offer, please register at:
http://scn.sap.com
Thank you,
The SAP Community team.
Skip to end of metadata
Go to start of metadata

In case many characteristics are in the drilldown and the query result set is big, the display of 'yellow'result lines may increase the memory consumption decisively:

 

The query has 5 characteristics in the drilldown (rows) and one structure with 4 basis key figures (very simple query without any calculated or restricted key figures). The result set has 970.000 rows and hence almost 4 million cells with key figure values. In RSRT the following output is displayed (HTML Mode):

Please note that in this case many yellow result lines are displayed which do not contain any additional information. Hence, please suppress result lines if they are not really necessary (for queries with huge result sets). In RSRT you can have the BW Statistics switched on for a query (please see note 1681396 ): 

On the tab 'Calculation Layer' the system provides helpful information:

This means (please see note 1681396 for further details): :

  • The DataManager needs 660 seconds to retrieve the data
  • 314,470 rows are transferred to the OLAP engine
  • 3,877,644 data cells are handed over to the frontend

We know that the final query result has about 970.000 rows. DBTRANS is 314,470 rows which is just 1/3 of the query result. The remaining rows are the yellow result rows!

E.g. with the help of transaction ST02 ( 'SAP Memory' -> 'Mode List') you can find out the memory consumption of this query:

 

The query needs more than 1GB (extended memory - see Memory Parameters ). If we want to apply the formula from Query Performance and Memory Consumption we still need to check the follwing values in the 'technical information':

and

The result of the formula

OLAP Memory Consumption in Bytes = (VF_G*24 + C_SP*8 + CHARS_DRILL*7) * DBTRANS  + 96 * OLAP_FE_TRANS

                                                             = (4*24 + 4*8 + 5*7)*314,470 + 96*3,877,644 = 423 MB

is 423 MB. This estimated value is by a fcator of 2.7 too small. One reason is that our formula does not take into account that the table SP includes the yellow result lines as well (and this sample query has about 600.000 such rows! ). The memory allocated by the texts and display attributes isn't included either. If you check the memory consumption in the debugger right after the processing block 'Data Transfer' (see How to check current Memory Consumption) you get the following values displayed:

So the memory consumption of the OLAP engine is actually 771 MB which is already closer to our calculated value. As mentioned above, the difference is mainly caused by the yellow result lines.

Please be aware that the memory consumption dicussed here only refers to the 'backend' (application server) since the query is executed in RSRT. In addition, please note that the memory consumption on the backend depends on the frontend you use to run the query. It is recommeded to use the HTML Mode in RSRT for the analysis since it doesn't need much more memory than the OLAP engine (e.g. since it only displays the first 25 rows of the query result). In case the BexAnlayzer is used for running the queries, you need to multiply the memory consumption in HTML mode by a factor of three (this is just a rough estimation). It might happen that the backend has enough resources to handle this, but the amount of data which is then transfered to the Analyzer is too big - please see note 1860872  'Report not executable in BEx Analyzer 7x / Client out of Memory'. Such a big query as our sample query would already terminate in the Analyzer:

 

 

  • No labels