F.A.Q. Business-ObjectsConsultez toutes les FAQ

Nombre d'auteurs : 15, nombre de questions : 101, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaire DesignerTable agrégées

Les tables agrégées contiennent des données précalculées à des niveaux de détail décroissants afin d'accélérer l'exécution des requêtes. Cette technique est particulièrement indiquée pour l'interrogation d'une base infocentre qui, tout en gardant le niveau de détail des évènements journaliers, devra répondre de façon optimale aux analyses hebdomadaires, mensuelles, trimestrielles ou annuelles.
Dès qu'une table contient plusieurs centaines de milliers de lignes d'évènements par an et couvre plusieurs années d'historique, la navigation agrégée prend tout son sens.

Un univers permet la navigation agrégée lorsqu'il contient un ou plusieurs objets dont la définition est adaptée à plusieurs niveaux d'agrégat.

La définition de ces objets s'appuie sur :

  • La fonction @Aggregate_Aware.
  • La gestion des incompatibilités Objets / Tables.

La fonction @Aggregate_Aware.
Elle permet d'indiquer dans la clause Select d'un même objet le champ numérique lui correspondant dans chacune des tables agrégées.
Les tables doivent impérativement être désignées de façon ordonnée en allant de la plus agrégée vers la plus détaillée.

Exemple : Objet indicateur Valeur
Sélectionnez
@Aggregate_Aware(sum(ANNEE_STAT.VAL), sum(MOIS_STAT.VAL), sum(DETAIL_STAT.VAL)).

Explication :
Si l'indicateur Valeur est choisi par l'utilisateur, avec la dimension Mois ...
le SQL sera détourné de la table ANNEE_STAT qui n'offre pas ce niveau d'information,
sera dirigé vers la table MOIS_STAT, niveau suffisant d'information pour ramener les objets demandés.

En revanche, si l'indicateur Valeur est choisi, ainsi que les dimensions Année, Mois et Date...
la table annuelle sera écartée, puis la table mensuelle (puisque ni l'une ni l'autre ne possèdent de champ date)
seule sera compatible la table détaillée au niveau des jours.

La gestion des incompatibilités Objets / Tables.

Elle seule permet que soit déterminé, au sein de la fonction @Aggregate_Aware, la table compatible.
Pour chaque table agrégée, il convient de spécifier les objets incompatibles ce qui désignera les tables agrégées à ignorer lors de la génération du SQL.

Les règles de la compatibilité Tables / Objets sont les suivantes :

Un objet est compatible avec une table s'il est placé à un niveau d'agrégat équivalent ou supérieur à celui de cette table.

Il est incompatible :

  • Si l'objet est placé à un niveau d'agrégation inférieur à celui de la table.
  • Si l'objet n'a aucun lien avec la table.

Pour fixer ces incompatibilités :

  • Menu Outils / Commande Navigation agrégée…
  • Dans la liste des Tables, choisissez une table agrégée.
  • Dans le volet de droite, cochez la case de chaque objet incompatible avec cette table.
  • Répétez l'opération pour chaque table.

Mise en garde : l'utilisation du bouton "Détecter les incompatibilités" offre des propositions d'incompatibilité que vous devez vérifier et valider.

Créé le 12 décembre 2007  par Bruno2r
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.