Accès directs
par rubriques :
- |
 |
 |
 |
| Script
d'évolution des tailles de tables |
Développement
d'une procédure lancée quotidiennement pour prévenir
les "explosions" des tables. Le principe est de calculer
la quantité d'espace libre jour après jour et, en fonction
de ce calcul, il est possible de savoir approximativement l'augmentation
du nombre d'enregistrement encore possible aujourd'hui ...
De plus, l'analyse quotidienne
des tables sur une longue durée permet d'avoir un aperçu
du nombre moyen d'enregistrements créés chaque jour par
table. Donc, en se basant sur cette moyenne et sur l'espace disponible,
il est possible de prévoir ( de manière assez précise
) dans combien de temps la table sera arrivée à saturation.
Ceci est globalement nommée
de l'administration prédictive ou prévisionnelle.
Cette partie a été
développée en PL-SQL et a été programmée
chaque nuit sur plusieurs serveurs de productions et de developpement
pendant plusieurs mois sans avoir à être retouché.
|
| Script
de génération de bases mirroirs |
Développement
d'une procédure qui, depuis un schéma Siebel
( plus de 600 tables ), génère
un schéma simplifié, plus facile à comprendre
pour les utilisateurs ( une trentaine de tables environ
).
Cela permet quotidiennement
à des centaines d'utilisateurs de requéter
sur des données de production sans écrouler les performances
des serveurs de productions possédant les données de la
veille au soir, ce qui, généralement est bien suffisant
pour le reporting classique.
Ce script une fois éxécuté
produit un rapport qui donne le nombre d'enregistrements par table, et
le nombre total d'enregistrements recréés, etc.
Cette partie a été
développée en PL-SQL et a été programmée
quotidiennement et peut meme être relancé en journée
en cas de demande utilisateur. La recontruction de la base mirroir est
autonome maintenant

|
 |
 |
 |
| Analyse
des requêtes les plus "gourmandes" |
Analyse des
requêtes occupant le plus de ressources lors de leur éxécution.
Il existe un principe simple selon lequel : plus une requête dure
longtemps, plus elle a de chance de ne jamais se terminer. C'est à
dire, qu'un requête, qui après une journée pleine
d'éxécution n'a toujours pas terminé son calcul ne
se terminera peut être jamais. Cela est trés souvent dû
à une mauvais écriture de la requête.
En se basant sur cette
observation, il apparait que les requêtes les plus longues à
éxécuter sont celles sur lesquelles on peut le plus gagner
de temps et de ressources. Il faut savoir que dans plus de 70% des cas,
des requêtes mal écrites sont à l'origine des temps
de réponse les plus lents. Dans environ 15% des cas, les lenteurs
sont dûes à un manque de tables intermédiaires ou,
tout au moins, d'étapes intermédiaires dans les requêtes
qui ont de plus en plus besoin de mémoire ou de ressources processeur.
Dans le reste des cas seulement, c'est à dire 15% environ, les
ressources matérielles sont réellement insuffisante.
Cette partie est appelée
Tuning SQL.

|
| Mise
en place de table de "pré-calcul" |
Dans un environnement
de production, il n'est pas rare de voir une même requête
s'éxécuter plusieurs centaines de fois. Cela impose au serveur
de ré-effectuer le même calcul plusieurs fois. Par exemple,
une requête prenant 1 seconde avant d'être éxécutée
peut être éxécuté 1000 fois, cela veut dire
que cette requête, sur l'ensemble de la journée de travail
( environ 8 heures ) aura pris 1000 secondes soit 16 minutes soit 1/32ème
du temps. Si 10 requêtes sont dans ce cas, c'est 1/8ème du
temps qui est passé pour 10 requêtes.
Ce genre de problème
peut être simplement réglé en lançant
ces requêtes pendant la nuit et en stockant le résultat dans
une table temporaire. Cette table sera simplement lue et contiendra
le résultat direct, ce qui fait tomber le temps de requête
de 1 seconde à environ 1/100~1/10 ème de seconde. Ce gain
est trés important dans des modèles contenant leur référentiel
et leurs données dans des tables Oracle.
Cette partie doit être
faite chaque soir ou à intervalle régulier.

|
| |
 |