Performance in the Information System 

The task of the information system in Profitability Analysis is to display data in aggregated form. This involves reading a large amount of data from the database. In the R/3 System, however, the callup of data is optimized in such a way that a large number of transactions process a small amount of data each.

The callup of a large amount of data by one transaction therefore represents an exception. To meet the requirements of this exception, the information system offers two different approaches for calling up data.

Some reports only display a few rows when you call them up (such as the company result) but allow you to drilldown to the characteristics Customer and Product. When you call up such a report, all data is loaded into the main memory, that is, all possible combinations of customer and product for your enterprise. This means having to load a large part of the segment level into the main memory. However, the capacity of the main memory is usually not sufficient for this.

When you execute the report discussed in the above example, only the company data is shown at first. The data at the more detailed levels is then read during drilldown.

The following sections contain a description of how these two approaches are implemented in the system and the considerations that you need to keep in mind.

Reading All Data When Calling Up The Report

When you execute the report using this option, the selected data is loaded into the main memory with the level of detail specified in the report. In the case of very detailed reports, such as those using the characteristics Customer and Product, it takes a long time to read the data if you have not restricted the scope of the report by making a selection. This method for reading data prevents the report from being called up quickly.

For this reason, any reports for which all data is to be read when you call them up should have a minimal level of detail. Performance can now be enhanced by applying suitable presummarization.

There are three types of presummarization:

You create report-specific frozen report data by executing the report in the background and by choosing the Rebuild frozen report data option in the selection. You can also create frozen report data online. You do this in the report display by choosing Report ® Save data. When you call up the report again using the same selection, you have the option of displaying this frozen report data. If you would like more up-to-date frozen report data, you need to create this data again.

The following types of presummarization (summarization data and summarization levels) are used during report execution if you specified the appropriate options in the Options tab page when you defined the report (see also Defining Profitability Reports).

Report-specific summarization data is created automatically the first time you call up a report using the Use summarization data option. The initial execution of the report should be performed in the background. The next time you execute the report, the summarization data is read and, if necessary, supplemented by current data, that is, current line items (if the appropriate option has been selected for the report). This current status is displayed in the report. In addition, the summarization data is updated accordingly.

Unlike report-specific summarization data, summarization levels are valid throughout Profitability Analysis. As with summarization data, current line items can be read automatically. Summarization levels aggregate the entire database, not just the data that is relevant for a report. You have to build them manually.

For more detailed information, see Summarization Levels.

Reading Data Upon Each Navigation Step

With the second approach, only the data that needs to be displayed for the current list is loaded into the main memory when the report is executed. With each navigation step, the system reads data from the database, selecting each time just the data that is required.

The prerequisite for being able to navigate in the report with quick response times is having appropriate summarization levels for different navigation levels. Moreover, when defining a report, you should apply the rules concerning form and selection (see the section Recommendations for Defining a Report below). If these prerequisites have been met, performance is optimized for drilling down from company results all the way to the line item level of the report, that is, to the lowest level of detail (customer/product).

You activate this function in the Options tab page during report definition (using the indicator Read upon each navigation step).

Summarization levels are always taken as presummarization for reports using the option Read upon each navigation step. When using this option, you cannot create summarization data or frozen report data because that would require all report data.

External hierarchies are not analyzed until the data has been read upon each navigation step. For this reason, do not use any external hierarchies (or at least as few as possible) to restrict the selected data.

The following example describes how you can call up - for a large number of users - a detailed report with the characteristics Customer and Product, without slowing down performance.

    1. Define a basic report with the user-defined characteristics Sales organization, Customer, and Product (in this order).
    2. In the Options tab page, select the Read upon each navigation step option for the report.
    3. The system then proposes a summarization level for the report. For this, choose Tools ® Summarization Levels ® Define Summarization Levels in Customizing and then choose Extras ® Proposal for ® Reports in the menu.
    4. Make two copies of the proposed summarization level and add an asterisk (*) to the levels for the following characteristics:
    5. Level 1: Sales organization

      Level 2: Sales organization and Customer

      Level 3: Sales organization, Customer, and Product

    6. Build the summarization levels (see Building Summarization Levels).
    7. Execute the report.

If you reproduce the above example in your system, you can gradually increase its complexity. This will allow you to gauge at what point and to what extent performance is hampered.

Recommendations for Defining a Report

An important way of reducing the amount of data records to be read and thereby enhance performance is by defining your reports appropriately. The following factors are critical for performance:

The complexity of the form depends on the quantity and type of the characteristics used. Characteristics with few characteristic values are uncritical. Those with many characteristic values, on the other hand, are critical.

In the case of reports that read all data when executed, the level of detail of the drilldown in the report directly influences the amount of data read. The greater the level of detail involved in the drilldown, the greater the amount of data that has to be read.

This restriction does not apply in the case of reports for which the data is read upon each navigation step.

The more you restrict the selection in the initial screen for the report, the smaller the amount of data that has to be read.

Consequently, there are several rules that can be applied when defining a report in order to reduce the storage requirements in the main memory: