Présentation des types de hiérarchie de dimension

Chaque dimension ASO possède un type de hiérarchie : Stocké, Dynamique, ou Multiple. Les éléments des dimensions présentant le type de hiérarchie Stocké sont stockés et les agrégations sont matérialisées dans des vues agrégées.

Les éléments des dimensions Dynamique ne peuvent pas être agrégés dans des vues. Dans les dimensions de type Multiple, la génération 2 (enfants du noeud supérieur) est définie sur Stocké ou Dynamique. Pour le type de hiérarchie Multiple, choisissez Stocké ou Dynamique comme type de hiérarchie dans la génération 2. Le premier enfant de génération 2 (généralement la hiérarchie principale) doit être de type Stocké. Pour ces hiérarchies, vous devez modifier tous les membres de génération 2 et sélectionner Stocké (privilégié) ou Dynamique comme type de hiérarchie.

Les dimensions Stocké sont privilégiées pour assurer des performances optimales. Etant donné que les types de hiérarchie que vous choisissez ont également une incidence sur le nombre de vues agrégées pouvant être créées, voici les recommandations d'Oracle :

  • N'utilisez que des dimensions de type Stocké, si possible.
  • Utilisez Multiple, lorsque cela est possible, si la dimension de type Stocké ne peut pas être utilisée.
  • Pour les dimensions de hiérarchie Multiple, définissez la génération 2 sur Stocké plutôt que sur Dynamique, si possible.
  • Utilisez des dimensions Dynamique uniquement si le type de hiérarchie Multiple ne peut pas être utilisé.
  • La dimension Compte doit toujours être de type Dynamique car il s'agit de la dimension de compression ASO. Cela ne peut pas être modifié.

Impact des types de hiérarchie dans la conversion des dimensions

Lors de la conversion d'une dimension, par exemple de Dynamique à Multiple, le membre de noeud (Gen1) prend le type Information seule. La conversion fonctionne si la dimension dynamique ne comporte qu'un enfant (+) dans la génération 2. Convertir une dimension de Dynamique à Multiple peut être impossible si vous avez besoin d'un total au niveau (noeud) Gen1.

Définition des types de hiérarchie

Le type de hiérarchie (Stocké, Dynamique ou Multiple) est défini en fonction du membre de noeud supérieur de chaque dimension. Dans tous les cas, les descendants héritent du type de hiérarchie du parent. Ainsi, les types de hiérarchie Stocké et Dynamique sont définis pour la dimension entière. Pour les dimensions dotées du type de hiérarchie Multiple, chaque membre de génération 2 (les enfants du membre de noeud) est défini sur Dynamique ou sur Stocké.

Remarques concernant le type de hiérarchie Stocké :

  • Le type de hiérarchie Stocké peut comprendre des opérateurs de consolidation + (Addition) et ~ (Ignorer).
  • L'opérateur de non-consolidation ou Ignorer peut être utilisé dans un type de hiérarchie Stocké uniquement si le parent du membre est défini sur LABEL_ONLY.

Remarques concernant le type de hiérarchie Dynamique :

  • Les membres dotés du type de hiérarchie Dynamique peuvent utiliser n'importe quel opérateur de consolidation, y compris Addition et Ignorer.
  • Il est possible d'utiliser des formules dans le type de hiérarchie Dynamique.
  • Les membres partagés peuvent exister dans un type de hiérarchie Stocké sous certaines conditions, mais peuvent nécessiter d'être dans un type de hiérarchie Dynamique (reportez-vous à la section Membres partagés et types de hiérarchie).
  • Evitez de réaliser des dimensions Dynamique volumineuses.

Utilisation d'une formule et de types de hiérarchie

Bien qu'il soit possible d'utiliser des formules dans le type de hiérarchie Dynamique, sachez que toute la dimension n'a pas besoin d'être de type Dynamique. Seule la hiérarchie dans laquelle la formule existe doit l'être.

Lorsque cela est possible, quand une dimension contient une formule, utilisez Multiple comme type de hiérarchie. Dans la génération 2, définissez uniquement les hiérarchies de la dimension qui contiennent une formule sur Dynamique. Le reste est défini sur Stocké.

La dimension Scénario, qui peut comporter Réel, Budget, Prévision et quelques formules, est un bon exemple. Souvent, il s'agit de membres de génération 2. Dans ce cas, définissez le type de hiérarchie Scénario sur Multiple, les membres de génération 2 contenant une formule sur Dynamique et tous les autres membres sur Stocké.

Membres partagés et types de hiérarchie

Les membres partagés peuvent avoir une incidence sur les décisions concernant le type de hiérarchie dans les bases de données ASO. Contrairement aux dimensions Stocké qui ne peuvent pas avoir de membres partagés, les hiérarchies Stocké au sein d'un type de dimension Multiple le peuvent.

Lors de la définition des types de hiérarchie dans les dimensions Multiple, définissez autant de hiérarchies que possible sur le type Stocké (paramètre dans la génération 2).

Les membres partagés peuvent exister dans des hiérarchies de type Stocké dans des dimensions Multiple si le membre partagé est partagé une seule fois et avec un membre de niveau 0. Cependant, les restrictions suivantes peuvent s'appliquer aux membres partagés dans une hiérarchie Stocké, nécessitant que vous définissiez une hiérarchie de génération 2 au sein de la dimension Multiple sur Dynamique :

  • Afin de s'assurer que les valeurs ne sont pas comptées deux fois, une hiérarchie Stocké ne peut pas contenir plusieurs copies du même membre partagé.
  • Une hiérarchie Stocké ne peut pas contenir à la fois la version stockée et la version partagée du même membre.
  • Une hiérarchie Stocké peut contenir une instance partagée d'un membre de hiérarchie Dynamique uniquement si ce dernier est un membre de niveau 0 et qu'il ne contient aucune formule. En d'autres termes, une hiérarchie Stocké ne peut pas contenir un membre partagé d'un membre de niveau supérieur ou d'un membre avec une formule.
  • Les membres partagés peuvent exister dans une dimension Multiple si chaque membre partagé est utilisé une seule fois et est une instance partagée d'un membre de niveau 0.

Définissez la hiérarchie de membres partagés (et non la dimension) sur Dynamique uniquement s'il est impossible de la définir sur Stocké. Néanmoins, dans de nombreux cas, les membres partagés peuvent exister dans une dimension Multiple avec tous les membres de génération 2 définis sur Stocké, par exemple, où les membres partagés ne sont utilisés qu'une seule fois dans toutes les hiérarchies partagées.