Active Base
 
 
Optimisez les performances des applications basées sur Oracle
   
 
Pourquoi utiliser ActiveBase

La productivité de développement des applications PB provient principalement du fait que les outils de développement pour PB prennent en charge la génération automatique des ordres SQL d’accès à la base et soulagent le développeur de ces tâches. Or avec le temps, les temps d’exécution peuvent se dégrader pour plusieurs raisons :

  • Les stratégies d’exécution de l’optimiseur d’Oracle évoluent avec les versions d’Oracle, et les ordres générés peuvent être traités selon des plans d’exécution différents
  • Les volumes de données augmentent et il est parfois nécessaire de « forcer » l’usage de certains paramètres de l’optimiseur pour tenir compte de ces nouveaux volumes ou de la répartition des valeurs dans les index, etc…
  • Des opérations sur la base ont été effectuées par les DBA qui auraient nécessité de revoir la génération des ordres SQL opérés dans les divers programmes PB, mais qui va « modifier un programme qui marche » uniquement pour le faire marcher mieux ? Avec le temps, cela entraîne des dégradations de performances importantes.
  • De nombreux ordres SQL sont générés dynamiquement à partir des écrans de saisie (fonction QBE), avec des champs non toujours renseignés, des conversions automatiques dues à des types de données différentes, des fonctions sur des colonnes inhibant l’usage des index etc… rendant l’optimisation de ces ordres dans le code impossible.
  • Etc…

Avec ActiveBase, divisez les temps d’exécution par 5, 10 ou plus !
- Pour toutes les applications ou progiciels utilisant une base de données Oracle.
- Sans modifier la base de données

- Sans aucune modification du code de l’application

 

Principe simple et rapide

La phase d’optimisation se passe en deux temps : une phase « off-line » et une phase « on-line ».

En mode off-line, les outils d’ActiveBase (ActiveBase Expert™ et ActiveBase Tuning Robot™) vont automatiser les processus suivants:

1. Aider à « identifier » les ordres SQL candidats à optimisation.
Par exemple un ordre qui dure 2 heures et qui pénalise la génération d’un rapport, ou bien des ordres de 30 secondes, mais qui sont exécutés fréquemment dans des contextes d’utilisation interactive.

2. Pour chacun de ces ordres, ils vont rechercher la combinaison de paramètres de l’optimiseur produisant le meilleur temps d’exécution.
Ces paramètres tiendront compte de la manière dont l’ordre SQL est construit et de la version d’Oracle cible. Cette combinaison de paramètres peut-être ajoutée sous forme de ‘Hint’ à l’ordre SQL original. Elle ne change pas la logique de l’ordre lui-même et ne fait qu’indiquer à l’optimiseur de prendre en compte les paramètres fournis.
Exemple :
Si une table contient plusieurs colonnes avec des Index, elle peut forcer l’usage d’un Index particulier, ou inhiber l’usage d’un Index,…
Cette recherche du meilleur Hint peut se faire en tâche de fond en périodes creuses sur l’environnement de production avec les données réelles actuelles, ou sur un environnement de pré-production.

En mode on-line, ActiveBase fournit ActiveBase Performance™ serveur :

1. ActiveBase Performance™ serveur s’installe entre les applications PB et les serveurs Oracle. Il intercepte les ordres SQL émis par les applications PB.

2. Son moteur de règles identifie les ordres SQL ayant fait l’objet d’une optimisation par les outils Expert ou le Tuning Robot.

3. Il ajoute à l’ordre SQL, à la volée, le « meilleur Hint » trouvé et envoie l’ordre SQL ainsi modifié à Oracle pour une exécution optimisée.

Les outils d’analyse SQL peuvent mettre en évidence certaines constructions d’ordres nécessitant d’être modifiées pour optimisation. Si ces ordres SQL sont codés en dur, il est possible de les modifier en intervenant dans le code des applications, mais souvent, ils sont générés dynamiquement.
ActiveBase Base offre la possibilité de créer des règles « génériques » qui analyseront les requêtes SQL en transit vers la base, et identifieront celles qui doivent être changées. Il leur appliquera les changements requis et les enverra ensuite vers la base pour exécution optimisée.
Une seule règle pourra ainsi traiter des centaines voire des milliers de requêtes.

Exemple :

Des requêtes SQL permettant de filtrer des informations sur un mois donné pourra être écrite de la manière suivante :

Select…. From fact_t where month_num = 12 ;

Dans ce cas, si la donnée est stockée dans un format de type date, l’index ne sera pas utilisé et les performances d’exécution de la requête s’en trouveront dégradées.

Une règle générique peut être écrite avec ActiveBase pour détecter l’ensemble des requêtes composées sous cette forme afin de les réécrire dans une syntaxe optimisée :

Select … From fact_t where date between 1.12 and 31.12

Bénéfices
  • La logique de l’ordre SQL est préservée, étant donné que le Hint consiste uniquement à modifier le comportement de l’optimiseur Oracle.
  • L’automatisation de la phase de recherche permet de gagner un temps considérable car il permet de traiter de nombreux ordres SQL, parfois très longs et complexes et ne nécessite aucune expertise ni une connaissance approfondie des internes d’Oracle.
  • Les Hints peuvent être régulièrement revus pour tenir compte de l’évolution de la volumétrie des données, du nombre ou du profil d’utilisateurs, des changements effectués par les DBA sur la base, etc..
  • Les améliorations sont immédiatement applicables aux applications.
  • Pas d’upgrade des serveurs ni du nombre de licences Oracle.
  • Prolonge la durée de vie des applications PowerBuilder en conservant ou améliorant la qualité de service