Réduire l'impact du calcul dynamique sur le temps d'extraction
L'augmentation du temps d'extraction lors du calcul dynamique d'un membre d'une dimension dense n'est significative que si ce membre contient une formule complexe. L'augmentation du temps d'extraction peut être importante lorsque vous marquez des membres de dimensions dispersées comme calcul dynamique.
Remarques :
Pour obtenir la liste des fonctions qui ont l'effet le plus significatif sur l'extraction des requêtes, reportez-vous à Fonctions et performances de l'ensemble de membres.
Afficher un facteur d'extraction
Pour vous aider à estimer toute augmentation du temps d'extraction, Essbase calcule un facteur d'extraction pour une outline de base de données lorsque vous l'enregistrez. Essbase calcule ce facteur d'extraction en fonction du bloc de données calculé dynamiquement qui est le plus coûteux à calculer pour Essbase. Le facteur d'extraction ne prend en compte que les agrégations. Il ne tient pas compte de l'impact des formules sur l'extraction.
Le facteur d'extraction est le nombre de blocs de données que Essbase doit extraire du disque ou de la base de données pour calculer le bloc le plus coûteux. Si la base de données comporte des membres de calcul dynamique dans les dimensions denses uniquement (aucun membre de calcul dynamique dans les dimensions dispersées), le facteur d'extraction est 1.
Une outline avec un facteur d'extraction élevé (par exemple, supérieur à 2000) peut entraîner de longs délais lorsque les utilisateurs extraient des données. Cependant, l'impact réel sur le temps d'extraction dépend également du nombre de valeurs de données calculées dynamiquement qu'un utilisateur extrait. Le facteur de récupération n'est qu'un indicateur. Dans certaines applications, l'utilisation de membres de calcul dynamique peut réduire le temps d'extraction car la taille de la base de données et la taille de l'index sont réduites.
Essbase affiche la valeur du facteur d'extraction dans le journal de l'application.
Un message similaire à cet exemple indique un facteur d'extraction :
Essbase needs to retrieve [1] Essbase kernel blocks in order
to calculate the top dynamically-calculated block.Ce message vous indique qu'Essbase doit extraire un bloc pour calculer le bloc de données calculé dynamiquement le plus coûteux.
Augmenter la taille du tampon d'extraction
Lorsque les utilisateurs interrogent Smart View, MDX ou Report Writer, Essbase utilise le tampon d'extraction pour optimiser la requête. L'augmentation de la taille du tampon d'extraction peut améliorer les performances des requêtes, car Essbase peut traiter des sections de données plus volumineuses simultanément.
Par défaut, la taille du tampon d'extraction est de 20 ko. Toutefois, vous pouvez accélérer le temps d'extraction si vous définissez une taille de tampon d'extraction supérieure à 20 ko.
Pour augmenter la taille du tampon d'extraction, vous pouvez utiliser l'instruction MaxL alter database. Exemple :
alter database Sample.Basic set retrieve_buffer_size 20kb;Vous pouvez également modifier la taille de la mémoire tampon dans les paramètres de personnalisation de la base de données à l'aide de l'interface Web Essbase.
Utiliser les caches du calculateur dynamique
Par défaut, lorsqu'Essbase calcule un membre de calcul dynamique dans une dimension dense (par exemple, pour une requête), il écrit tous les blocs nécessaires au calcul dans une zone de mémoire appelée cache de calcul dynamique. Lorsque Essbase écrit ces blocs dans le cache du calculateur dynamique, il les développe pour inclure tous les membres Calcul dynamique dans les dimensions denses.
Si une requête inclut un membre de calcul à deux passes dans une dimension dense, elle a besoin d'un cache de calculateur dynamique pour chaque bloc extrait.
L'utilisation du cache de calculateur dynamique Essbase permet un contrôle centralisé de l'utilisation de la mémoire pour les calculs dynamiques. La gestion des blocs de données dans le cache du calculateur dynamique réduit également les besoins globaux en espace mémoire et peut améliorer les performances en réduisant le nombre d'appels au système d'exploitation pour effectuer des allocations de mémoire.
Remarques :
Le cache du calculateur dynamique et le cache du calculateur utilisent différentes approches pour optimiser les performances du calcul.
Reportez-vous également aux sections Taille des caches du calculateur dynamique et Taille du cache du calculateur.
Vérifier l'utilisation du cache du calculateur dynamique
Essbase écrit deux messages dans le journal de l'application pour chaque extraction de données. Dans l'exemple suivant, le premier message décrit la durée totale requise pour l'extraction :
Regular Extractor Elapsed Time : [0.531] seconds
Regular Extractor Big Blocks Allocs -- Dyn.Calc.Cache : [30] non-Dyn.Calc.Cache : [0]Si un cache de calculateur dynamique est utilisé, un second message affiche le nombre de blocs calculés dans le cache de calculateur de données (Dyn.Calc.Cache : [n]) et le nombre de blocs calculés en mémoire en dehors du cache de calculateur dynamique (non-Dyn.Calc.Cache : [n]).
Pour déterminer si le cache de calcul dynamique est utilisé efficacement, vérifiez les deux messages et tenez compte de vos paramètres de configuration. Par exemple, si le message indique que les blocs ont été calculés en dehors et dans un cache de calcul dynamique, vous pouvez augmenter le paramètre DYNCALCCACHEMAXSIZE.
Si la taille maximale spécifiée est tout ce que vous pouvez vous permettre pour tous les caches du calculateur dynamique sur le serveur, et si l'utilisation de la mémoire en dehors du cache du calculateur pour effectuer des extractions calculées dynamiquement entraîne des retards inacceptables (par exemple, en raison de l'activité de permutation ou de pagination), définissez DYNCALCCACHEWAITFORBLK sur TRUE.
Vous pouvez utiliser l'instruction MaxL de la base de données d'interrogation avec la grammaire Statistiques de performances pour afficher un récapitulatif de l'activité du cache du calculateur dynamique.