When you load data into the InfoCube, entire requests can be added all at once. Each of these requests has its own request ID, which is included in the fact table in the package dimension. This makes it possible to pay particular attention to individual requests. One advantage of the request ID concept is that you can subsequently delete complete requests from the InfoCube.
The request ID concept can also cause the same data record (where all characteristics are the same except the request ID) to appear more than once in the fact table however. This results in an unnecessary increase in the volume of data and affects system performance when you analyze data, since each time you execute a query, the system has to perform aggregation using the request ID.
You can eliminate these disadvantages by compressing data and bringing data from different requests together into one single request (request ID 0).
This function is critical, since you cannot delete compressed data from the InfoCube using its request ID. You must be absolutely certain that the data loaded into the InfoCube is correct.
You can choose request IDs and set them for compression. You can schedule the function immediately or in the background. You can schedule compression as part of a process chain.
Compressing a request takes approximately 2.5 ms per data record.
With non-cumulative InfoCubes, compression has an additional effect on query performance. With non-cumulative InfoCubes, the marker for non-cumulatives is also updated. This means that less data has to be read for a non-cumulative query. This reduces the response time. More information: Modeling of Non-Cumulatives with Non-Cumulative Key Figures.
If you perform compression for a non-cumulative InfoCube, the compression time (including the time to update the markers) is about 5 ms per data record.
If you are using an Oracle database as your database, you can also execute queries on the relevant InfoCube while compression is running. With other manufacturers'databases, a warning message appears if you try to execute a query on an InfoCube while compression is running. You can then execute the query once compression is finished.
If you do not want the InfoCube to contain entries with zero values for key figures (in reverse posting for example), you can run zero-elimination at the same time as compression. In this case, entries where all key figures are equal to 0 are deleted from the fact table.
Zero-elimination is only allowed for InfoCubes where all key figures have aggregation behavior 'SUM'. You cannot run zero-elimination for non-cumulative key figures.
For non-cumulative InfoCubes, you can ensure that the non-cumulative marker is not updated by setting the No Marker Updating flag. If you are loading historic changes to non-cumulative values into an InfoCube after initialization has already taken place using the current non-cumulative, you have to use this option. If you do not use this option, the results produced in the query will be incorrect. In order to obtain satisfactory performance, you should compress subsequent delta requests.
In order to obtain satisfactory performance and to save space on the memory, compress a request as soon as you have established that it is correct and should not be removed from the InfoCube.