When you load data into the InfoCube, entire requests can be added at the same time. 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.
However, 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. This unnecessarily increases 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 release them to be compressed. You can schedule the function immediately or in the background. You can schedule compression as part of a process chain.
Compressing one 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 which reduces the response time. See also Modeling 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, you get a warning message if you try to execute a query on an InfoCube while compression is running. You can 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, the entries where all key figures are equal to 0 are deleted from the fact table.
Zero-elimination is only allowed for InfoCubes that contain key figures with aggregation behavior ‘SUM’ exclusively. You cannot run zero-elimination for InfoCubes that contain non-cumulative values.
For non-cumulative InfoCubes, you can ensure that the non-cumulative marker is not updated by setting the indicator No Marker Updating. 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 are incorrect. For performance reasons, you should compress subsequent delta requests.
For performance reasons, and to save space on the memory, compress a request as soon as you have established that it is correct and is not to be removed from the InfoCube.