Changing Dimensions

Analysis Services

Analysis Services

Changing Dimensions

A changing dimension is a dimension that is optimized for frequent changes. A changing dimension permits more types of changes without the subsequent necessity of fully processing the dimension or the cubes that contain it. Full dimension processing interrupts access by end users to any cube including the dimension. Full cube processing also interrupts end users' access to cubes if the cube processing includes full dimension processing. Thus, a changing dimension has the potential advantage of less frequent interruptions of end users' access.

Making a regular dimension into a changing dimension can be beneficial if its table is updated frequently, at unpredictable times, or while end users are connected to cubes that include the dimension. However, making the dimension a changing dimension is advisable only if end users must see these updates soon after they are made. If there is no pressing need to incorporate the dimension table updates in cubes, it is generally better to leave the dimension a non-changing dimension and to process it and the cubes that use it while end users are not connected to the Analysis server.

The following varieties of dimensions are always changing dimensions:

Although changing dimensions can provide greater accessibility than non-changing dimensions, queries that use changing dimensions are somewhat slower.

In a changing dimension, levels below the top level and above the bottom level can be added, moved, renamed, and deleted, and there is no subsequent processing requirement. (The relevant dimension and cube data is updated automatically when the dimension is saved.) An exception is the addition of a level that contains member groups. For more information, see Creating Member Groups.

Processing Requirements

The processing requirements for member updates vary depending on whether the changing dimension is shared or private.

  • Shared

    In a changing shared dimension, members below the top level and above the bottom level can be added, moved, changed, and deleted. (If the dimension has an (All) level, it is the top level. In a parent-child dimension, a leaf member is considered a member of the bottom level for the purpose of determining this processing requirement.) Except for deleted members, the only subsequent processing requirement is to process the dimension with the Incremental update option. If members are deleted, the cube must be reprocessed. When the incremental update is complete, cubes that include the dimension are refreshed automatically. Neither the incremental update of the dimension nor the automatic refresh of the cubes interrupts end users' access. When the refresh is complete, end users see the new versions of the cubes.

  • Private

    In a changing private dimension, members below the top level and above the bottom level can be added, moved, changed, and deleted; the only subsequent processing requirement is to process the cube that contains the dimension with the Refresh data option. (If the dimension has an (All) level, it is the top level. In a parent-child dimension, a leaf member is considered a member of the bottom level for the purpose of determining this processing requirement.) The refresh of the cube does not interrupt end users' access. When the refresh is complete, end users see the new version of the cube.

Write-enabled dimensions whose members are updated in Analysis Manager or through client applications are exceptions; these dimensions and the cubes that contain them do not require subsequent processing.

Creation Requirements

Before you make a changing dimension, unless the dimension is a virtual dimension or a parent-child dimension, be sure that it meets the following requirements:

  • The Member Keys Unique property of the lowest level must be set to True.

  • If the dimension is a private dimension, its Aggregation Usage property is set to Standard if currently set to Custom.

  • If the dimension is a shared dimension, in all cubes that include the dimension, its Aggregation Usage property must be set to one of the following values:
    • Standard.

    • Top Level Only. This value is valid only if the dimension's All Level property is set to Yes.

    • Bottom Level Only.

    • Top and Bottom Levels. This value is valid only if the dimension's All Level property is set to Yes.

To make a dimension a changing dimension, set its Changing property to True in the properties pane of Dimension Editor (if the dimension is shared) or Cube Editor (if the dimension is private).