Aggregation Enhancements |
In Oracle 10g, new features have been added, some default values have changed, and old functionality has been deprecated.
In Oracle 10g, you can use compressed composites to create variables with the fewest stored aggregated values. Using compressed composites improves performance and decreases the space needed to store aggregate values. A compressed composite contains one composite tuple for each set of base dimension values that identifies non-NA detail data in the variables that use it. Additionally, for variables dimensioned by compressed composite Oracle OLAP reduces redundancy in the variable, composite, and composite index by creating a physical position in the composite only for those tuples that represent a parent with more than one descendant
Oracle OLAP compresses the data in variables dimensioned by compressed composites using the "intelligence" of the AGGREGATE command or AGGREGATE function. In Oracle 10g, though there are still some special considerations that apply when aggregating a variable dimensioned by one or more compressed composites, these considerations are less restrictive than in earlier releases.
In Oracle 10g, within an aggregation specification, you can access special Oracle OLAP functionality called the Aggregate Advisor. Using the Aggregate Advisor you can request that Oracle OLAP determine the values that are aggregated as a database maintenace procedure and those aggregated on-the-fly to give the best performance and storage.
In Oracle 10g, the new features have also improved the aggregation capabilities of Oracle OLAP:
You can perform hierarchical and non-hierarchical aggregation across data objects.
You can specify computation based on the position of dimension values and hierarchical level.
You can specify default an aggregation specification for a variables.
The default values for the CACHE statement in an aggregation specification has changed.
The the following aggregation statements and parameters were deprecated:
The ROLLUP statement was deprecated as of Oracle 10g Release 1 (10.1.0.3). Although the ROLLUP statement offered a way of performing simple additive aggregation through a single OLAP DML statement. However, ROLLUP was not compatible with many new features (for example, aggmap objects and compressed composites). Beginning with Oracle 10g Release 1, define your aggregations using aggmap objects as discussed in "Aggregations".
For the AGGREGATE command and the AGGREGATE function:
The WAGG and WNOAGG weighted operators have been deprecated. WPREAGG is now the default for all weighted operators.
The WAGG and WNOAGG weighted operators have been deprecated. WPREAGG is now the default for all weighted operators.
Arbitrary LIMIT syntax in PRECOMPUTE statements has been deprecated.
For example, the following syntax is not supported:
PRECOMPUTE(limit(b to first 5))
Instead, (1) define a valueset, (2) define an aggmap object that uses the valueset that you defined in step 1, (3) limit the valueset that you defined in step 1, and then (3) execute an AGGREGATE statement using the aggmap that you defined in step 2. For example:
DEFINE time.precomp VALUESET time
DEFINE myaggmap AGGMAP
AGGMAP
RELATION time.parentrel PRECOMPUTE(time.precomp)
END
LIMIT time.precomp TO FIRST 5
AGGREGATE myvar USING myaggmap
In previous releases, the syntax for the ANY, AVERAGE, COUNT, EVERY, LARGEST, MEDIAN, NONE, SMALLEST, STDDEV, TALLY, and TOTAL functions included a STATUS keyword that specified the status of a temporary variable sometimes used by these functions. Improvements negated the need for a temporary variable and, consequently, the STATUS keyword in these functions has been deprecated.