Types of caches used by dynamic cubes

Several types of caches are available for dynamic cubes to allow improvements to query response times.

Result set cache

Result set cache is an intermediate storage of multidimensional expression language (MDX) query results. This cache is stored on disk in a binary format. The in-memory portion of the result set cache stores the queries and the associated security profile. If an MDX query from the dynamic query mode server to the IBM® Cognos® Dynamic Cubes engine matches an entry in the result set cache and matches the security profile for the cache, then the result is read from the disk and the query is not run.

Expression cache

The MDX engine caches the results of various intermediate MDX set expressions that are keyed by the expression, its query context, and the security profile of the user. If the MDX engine encounters a set expression that was previously executed then it will retrieve the result set from the expression cache instead of calculating the set expression.

The expression cache helps to relieve the costs associated with the time and memory it takes to run set expressions.

Data cache

The MDX engine sends data queries to the Cognos Dynamic Cubes engine. The result of each query that is retrieved from the database (fact table), database aggregate tables, and in-memory aggregate cache is stored in the data cache.

Before sending any query to the database, the Cognos Dynamic Cubes engine scans the data cache for all the entries that are able to provide some or all of the required data without querying the database.

The data cache is also known as the query cache.

Member cache

This cache contains cube members that are loaded from the source relational data source. The member cache can be refreshed when appropriate, such as when the source data is changed. Refreshing the member cache updates the cube with the latest metadata.

Aggregate cache

Aggregate Advisor analyzes dynamic cubes and suggests aggregates that can improve cube performance. The aggregate cache contains pre-calculated values for aggregations that are suggested by Aggregate Advisor. The pre-calculated values are results of queries to the database.

Aggregate tables

Data can be summarized in a table known as an aggregate table. An aggregate table contains detail fact data that is aggregated at a higher level relative to one or more of the dimensions associated with the data. Using an aggregate table allows the use of pre-calculated data from a data warehouse and decreases the amount of data that is accessed from the data warehouse.