27 janvier 2009
2
27
/01
/janvier
/2009
15:50
Bonjour,
Lorsqu'une application a un peu de vécu, il arrive que l'on se demande si tel index est utilisé ou pas.
En effet la présence d'un index a un impact sur :
Admettons que vous aillez un doute sur l'utilisation d'un index que l'on appellera "mon_index". Il va suffir de le monitorer et de voir si il est utilisé.
ALTER INDEX mon_index MONITORING USAGE;
Il suffit ensuite d'interroger la vue v$object_usage pour savoir si l'index a été utilisé.
Dans cette vue nous avons les colonnes suivante:
Une fois que l'on pense avoir sa réponse, ou que l'on estime que l'on est passé dans toutes les requetes pouvant potentiellement utiliser cet index, on peut alors stopper le monitoring.
ALTER INDEX mon_index NOMONITORING;
Remarque: Une fois qu'un index a été monitoré, la trace est conservée dans la vue v$object_usage (d'ou l'interet de la colonne End_Monitoring).
Attention : La méthode décrite ici, indique seulement qu'un index n'a pas été utilisé. Cela ne permet pas de conclure que l'index est inutile. Cela peut permettre par exemple de mettre en evidence que les stats ne sont pas à jour, ou que les paramètres de base sont mal initialisés.....
Re Attention : L'utilisation de ce type de monitoring doit également est effectué avec quelqu'un qui maitrise le fonctionnel. En effet, si vous décidez de supprimer un index car non utilisé sur plusieurs mois et que manque de pot,il était utile sur un traitement annuel, vous pouvez plombez les performances. "Sans controle, la puissance n'est rien..."
LAO.
Lorsqu'une application a un peu de vécu, il arrive que l'on se demande si tel index est utilisé ou pas.
En effet la présence d'un index a un impact sur :
- La taille de la base
- Les performance lors d'opération d'INSER, UPDATE , ou DELETE puisqu'il faut au passage mettre à jour les indexes.
Admettons que vous aillez un doute sur l'utilisation d'un index que l'on appellera "mon_index". Il va suffir de le monitorer et de voir si il est utilisé.
ALTER INDEX mon_index MONITORING USAGE;
Il suffit ensuite d'interroger la vue v$object_usage pour savoir si l'index a été utilisé.
Dans cette vue nous avons les colonnes suivante:
- Index_Name
- Table_Name
- Monitoring
- USED
- Start_Monitoring
- End_Monitoring
Une fois que l'on pense avoir sa réponse, ou que l'on estime que l'on est passé dans toutes les requetes pouvant potentiellement utiliser cet index, on peut alors stopper le monitoring.
ALTER INDEX mon_index NOMONITORING;
Remarque: Une fois qu'un index a été monitoré, la trace est conservée dans la vue v$object_usage (d'ou l'interet de la colonne End_Monitoring).
Attention : La méthode décrite ici, indique seulement qu'un index n'a pas été utilisé. Cela ne permet pas de conclure que l'index est inutile. Cela peut permettre par exemple de mettre en evidence que les stats ne sont pas à jour, ou que les paramètres de base sont mal initialisés.....
Re Attention : L'utilisation de ce type de monitoring doit également est effectué avec quelqu'un qui maitrise le fonctionnel. En effet, si vous décidez de supprimer un index car non utilisé sur plusieurs mois et que manque de pot,il était utile sur un traitement annuel, vous pouvez plombez les performances. "Sans controle, la puissance n'est rien..."
LAO.