Comprendre les différentes fragmentations Essbase

Au niveau de l’application Essbase, nous distinguons 3 différents types de fragmentation pour les cubes BSO.

Présentation

2 des 3 fragmentations portent chacune sur 1 critère précis auquel vous pouvez y rattacher 1 propriété spécifique.

  • de l’espace libre : Average Quotient Fragmentation (valeur nominale proche de 0)
  • de l’ordre des blocs : Average Clustering Ratio (valeur nominale proche de 1)

La 3ème fragmentation porte sur le nombre de blocs vides. Aucune statistique native Essbase ne permet simplement de les compter.

Ordre des blocs

Constat

Illustration ordre des blocs
Impact ordre des blocs sur le clustering ratio

 

Comme nous l’illustrons ci-dessus, le bloc B1 est situé au début, et en dépit de blocs manquants dans la série considérée, nous constatons que la valeur Clustering Ratio est à 1, c’est à dire la valeur nominale qui signifie que les blocs ne peuvent pas être mieux rangés.

Lorsque le bloc B1 grossit et se retrouve alors dans un autre espace plus adapté à sa nouvelle taille, il n’est plus à la meilleur place possible. L’ordre des blocs n’est plus optimal, nous avons alors le Clustering Ratio qui « chute » à 0.8.

Plus nous nous approchons de 0, plus le Clustering Ratio indique une mauvaise répartition des blocs dans l’espace de stockage.

Remède

Pour rétablir le Clustering Ratio à 1, et donc réarranger l’ordre des blocs, 2 techniques existent :

  • effectuer une restructuration dense (implicite ou explicite)
  • effectuer un export / import de complet données

Espace libre

Constat

Illustration Espace libre
Impact de l’espace libre sur le quotient de fragmentation

Le schéma ci-dessus illustre dans un premier temps un cube contenant 5 blocs concomitants permettant à ce cube d’avoir un quotient de fragmentation de 0. Vient ensuite une série de créations/suppressions de blocs qui font que nous nous retrouvons avec 3 blocs supprimés en plein milieu de la série de blocs. Nous avons donc 3 / 12 = 0,25 blocs vides, c’est à dire un quotient de fragmentation de 25%.

Remède

Pour rétablir le Quotient de Fragmentation à 0%, et donc supprimer l’espace libre inter-blocs, 2 techniques existent :

  • effectuer une restructuration dense (implicite ou explicite)
  • effectuer un export / import complet de données

Blocs vides

Constat

Lors de la création de blocs via un script de calcul par exemple, certains blocs peuvent devenir vides à la fin de l’exécution de ce même script. Conserver trop de blocs vides peut nuire aux performances de votre application. Il n’existe malheureusement aucun moyen simple de compter le nombre de blocs vides dans la console d’administration Essbase. Ce n’est qu’en les supprimant qu’il est possible de savoir a posteriori le nombre de blocs vides présents dans le cube.

Remède

Effectuer régulièrement une restructuration dense explicite.

Sources

Ces 2 articles, issus de la documentation Oracle, ont été très utiles pour corroborer nos expériences.