Service SQL IBM i (AS/400) · Procédure
SYSTOOLS.REMOVE_INDEXES
Supprimer les index peu utilisés
Supprime dans une bibliothèque les index trop anciens et trop peu utilisés, d'après le nombre d'utilisations et l'ancienneté.
À quoi ça sert
Cette procédure parcourt la bibliothèque P_LIBRARY et supprime les index dont le nombre d'utilisations (P_TIMES_USED) et l'ancienneté (P_INDEX_AGE, une durée comme 1 MONTH) correspondent aux critères. L'exemple IBM supprime les index de plus d'un mois qui n'ont jamais servi.
On l'utilise pour alléger une base dont les index créés au fil du temps ralentissent les écritures et occupent de l'espace. Elle complète SYSTOOLS.HARVEST_INDEX_ADVICE, qui aide à en créer d'utiles.
Résultat réel sur un IBM i 7.5
Procédure non exécutée sur notre IBM i de test : elle agit sur la configuration du système ou sur d'autres travaux.
L'exemple d'IBM
Supprimer les index de la bibliothèque TOYSTORE qui ont plus d'un mois et n'ont jamais été utilisés.
-- Description: Remove indexes older than a month that have never been used.
CALL SYSTOOLS.REMOVE_INDEXES('TOYSTORE', 1, '1 MONTH');
Bon à savoir
Aucun mode aperçu n'est proposé : lister d'abord les index candidats avec les statistiques d'utilisation du catalogue avant d'exécuter la procédure. Un index absent d'un traitement mensuel ou annuel peut sembler inutilisé.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
P_LIBRARY |
CHAR(10) | obligatoire | Nom de la bibliothèque |
P_TIMES_USED |
BIGINT | obligatoire | Nombre d'utilisations de l'index |
P_INDEX_AGE |
VARCHAR(100) | obligatoire | Ancienneté minimale de l'index |