Optimizing BEx Query performance

In this recipe, we will give you some specific performance optimization recommendations when using BEx Queries as a data source for your data connection. Standard SAP BW optimization practices like InfoCube design, using aggregates, OLAP caching, and so on have not been covered here, as it is too general and out of the scope of this book.

How to do it…

We will discuss three topics here.

Use dashboard specific queries

Do not reuse existing queries that are used for reporting with analysis tools, such as BEx Analyzer, SAP BusinessObjects Web Intelligence, or SAP BusinessObjects Analysis. These queries tend to have a broad setup with lots of (free) characteristics and key figures, whereas for a dashboard, extremely specific queries are required. The dashboard queries should provide a result set with only the data that is required, and nothing more.

Also, do not use BEx Query Views. Instead, if you want to reuse an initial query and change its structure, make use of the Data Preview tab of the Data Manager.

Use the BEx Query Designer features

The SAP BW environment is highly optimized for query execution, so make sure you do all calculation and summarization in the query and not in the dashboard. Avoid using an Excel formula whenever you can create the same outcome in the BEx Query. So, if you need a column total or average, use the features of the BEx Query Designer to add a total row or an additional formula or selection to your output. If you need a specific, complex key figure calculation, let the BEx Query take care of that. Do not make these calculations with Excel formulas, as this will increase the size of your dashboard and decrease its loading performance greatly.

Also, for data filtering options you can use the BEx Query Designer. It has tons of options for custom input variables, with offsets and even user and default SAP exits, which let the SAP BW system do the complex calculations of the required values. An example is the selection of the year-to-date period range until the previous month. In addition to this, you can use Text variables to create dynamic labels.

Only use and reload necessary (master) data

It sounds pretty obvious, but you do not want to reload all connections every time a selection is made. Try to set up a smart system to reload only those connections that provide data for parts of the dashboard that are used and displayed at the time of data refreshment. Use trigger cells to set this up.

Make sure you only bind the master data values for the characteristics that you actually are using in the dashboard (for example, to fill the labels of selection component). Only for those characteristics that have Output Values from the Value Help section bound to a spreadsheet cell range are the values retrieved.

We can reduce the amount of master data values by making smart selections in the BEx Query. In case you only need the last five years of data, add a (variable) selection on the year characteristic in the Global Filter in the BEx Query Designer. Now for the time characteristics only master data values for the last five years will show up in the dashboard.

Also, if the master data values that are provided by the BEx Query are static, it doesn't make sense to load them each time the connection is refreshed. If this negatively influences the loading performance too much, you could consider the creation of a separate connection to load these master data values only once.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset