Since too many entries in the cache administration tables (RSR_CACHE_FFB, RSR_CACHE_DATA_B or RSR_CACHE_QUERY and RSR_CACHE_VARSH) can lead to performance problems with Bex Queries, reducing the cache objects - or keeping it into a a certain limit - is somewhat of an important housekeeping activity.
In the BW Releases < 7.4 the report RSR_CACHE_RSRV_CHECK_ENTRIES mainly was used to delete cache objects. It searches on all storage media on all servers of the current system, see SAP note 784979.
On BW Releases >= 7.4 a manual deletion of cache objects is not that important anymore. The reason is that the former functionaliy of the report was moved to the new SHRINK method of the cache. As opposed to the report the SHRINK method automatically controls the cache size and removes invalid plus the least recently used cache entries until an adjustable lower limit is reached.
Hence there should be no need to use the report. In case you need to cleanup the whole cache manually on a certain occasion, you could
- Use the report RSR_CACHE_FULL_RESET instead. This is a fast way to delete all cache objects (no selection is possible) and it is very useful to cleanup the cache from old entries. (This situation may happen in case cache objects exist in some tables, which are not referenced in other tables anymore. Such 'orphaned' entries might have survived all previous manual deletion attempts without being noticed.) The report is mentioned in KBA 2140135.
- Delete the cache directly in transaction RSRCACHE. Either by using the 'Delete' button in the menue bar. Or by deleting single cache objects for a certain query in the Hierarchical Display of the Database Cache.
- With the introduction of SAP note 2529038 the report RSR_CACHE_FULL_RESET has been rewritten to meet its original purpose, which is to clean the cache from unused or outdated objects, see more details in SAP note 2529038.
Database Cache Limit
The reason why it is less important on BW Releases >= 7.4 to do a manual cleanup is that now a parameter exists that can be used to prevent the growing of the objects in the cache administration tables. This 'Database Cache Limit' can be adjusted in the 'Cache Parameters' tab of RSRCACHE. See the details about the limitation and how to use it in KBA 2140135 and in the information in the SAP Online Help: http://help.sap.com/saphelp_nw74/helpdata/en/00/241da12ef84f40bb6ecd3ae73d8b58/content.htm
How come that the 'Database Cache Entries' shown in RSRCACHE exceeds the fixed 'Database Limit'?
Technically the 'Database Cache Limit' applies to the number of entries in table RSR_CACHE_FFB only. However, each RSR_CACHE_FFB entry has exactly one data entry in table RSR_CACHE_DATA_B assigned. Logically the 'Database Cache Limit' thus is only a threshold for the number data objects in the cache.
The 'Database Cache Entries' however reflect the number of cache objects on the whole. That means that it not only represents the sum of entries of the mentioned tables RSR_CACHE_FFB and RSR_CACHE_DATA_B. But also the entries of the tables RSR_CACHE_QUERY and RSR_CACHE_VARSH. Hence the number shown in 'Database Cache Entries' must be at least twice as large as the preset DB limit, before a shrink run is triggered. Hence the best way to check the limit is to compare the determined ‘Database Limit’ with the current number of records of table RSR_CACHE_FFB.
SAP Notes and KBAs
- 784979 - Deletion of old cache entries
- 2140135 - Report RSR_CACHE_RSRV_CHECK_ENTRIES does not work anylonger
Link to this page: https://wiki.scn.sap.com/wiki/x/lw3eGw