Aller au contenu

Recette SQL IBM i (AS/400) · Base de données

Les index que Db2 conseille de créer

Les index que l'optimiseur Db2 for i conseille de créer, classés par nombre de conseils : la piste n°1 pour accélérer les requêtes.

Le besoin

Une requête lente faute d'index : Db2 le sait et le note. Chaque fois que l'optimiseur aurait aimé un index, il l'enregistre dans le conseiller d'index.

La requête

SELECT TABLE_SCHEMA, TABLE_NAME, KEY_COLUMNS_ADVISED, TIMES_ADVISED, INDEX_TYPE,
       MOST_EXPENSIVE_QUERY, LAST_ADVISED
FROM QSYS2.SYSIXADV
ORDER BY TIMES_ADVISED DESC
FETCH FIRST 10 ROWS ONLY

QSYS2.SYSIXADV donne pour chaque conseil la table, les colonnes clés suggérées, le nombre de fois où il a été donné et la durée de la requête la plus coûteuse concernée.

Le résultat sur un IBM i 7.5

Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :

TABLE_SCHEMA Bibliothèque de la table TABLE_NAME Nom de la table KEY_COLUMNS_ADVISED TIMES_ADVISED INDEX_TYPE MOST_EXPENSIVE_QUERY LAST_ADVISED
QNEWNAVSRV QINAVMNTRG OBSOLETE 2534780 RADIX 1 2026-10-01 13:17:13.996337
QUSRBRM QA1ANET2 OBJ 632122 RADIX 1 2026-10-01 14:44:40.885698
QUSRBRM QA1ANET2 RMTSYS, RMTRNI, OBJ, LIB 631963 RADIX 1 2026-10-01 14:44:40.908702
QUSRBRM QA1A1RMT R1MACT, R1MSYS 631953 RADIX 1 2026-10-01 14:44:40.928698
QUSRBRM QA1ANET2 OBJ, RMTSYS, RMTRNI, LIB 631927 RADIX 1 2026-10-01 14:44:40.908690

Chez nous, les conseils portent sur des tables système (IBM Navigator, BRMS) : rien à créer côté applicatif.

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés.

L'adapter à votre système

Filtrez sur vos bibliothèques applicatives (WHERE TABLE_SCHEMA = 'MABIB'). Ne créez pas tout : un index coûte à chaque écriture. SYSTOOLS.ACT_ON_INDEX_ADVICE crée les index au-delà d'un seuil.