Aller au contenu

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ètreTypePar défautSignification
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