Recette SQL IBM i (AS/400) · Stockage
Les objets d'une bibliothèque inutilisés depuis plus d'un an
Les objets d'une bibliothèque jamais utilisés, ou pas depuis plus d'un an, classés par taille : les candidats au nettoyage.
Le besoin
Avant un nettoyage, on veut savoir ce qui ne sert plus. IBM i tient le compte : date de dernière utilisation et nombre de jours d'utilisation pour chaque objet.
La requête
SELECT OBJNAME, OBJTYPE, OBJCREATED, LAST_USED_TIMESTAMP, DAYS_USED_COUNT,
DECIMAL(OBJSIZE / 1024.0, 15, 1) AS TAILLE_KO
FROM TABLE(QSYS2.OBJECT_STATISTICS('QGPL', '*ALL')) O
WHERE LAST_USED_TIMESTAMP IS NULL OR LAST_USED_TIMESTAMP < CURRENT TIMESTAMP - 1 YEAR
ORDER BY OBJSIZE DESC
FETCH FIRST 10 ROWS ONLY
LAST_USED_TIMESTAMP est vide si l'objet n'a jamais servi. DAYS_USED_COUNT compte les jours d'utilisation depuis sa création ou la dernière remise à zéro.
Le résultat sur un IBM i 7.5
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| OBJNAME Nom de l'objet | OBJTYPE Type de l'objet | OBJCREATED Horodatage de création de l'objet | LAST_USED_TIMESTAMP Horodatage de dernière utilisation | DAYS_USED_COUNT Nombre de jours d'utilisation | TAILLE_KO Taille (Ko) |
|---|---|---|---|---|---|
| POKEMO0001 | *JRNRCV | 2026-04-22 11:03:16.000000 | NULL | 0 | 836 |
| POKEMO0002 | *JRNRCV | 2026-06-06 17:33:17.000000 | NULL | 0 | 836 |
| POKEMO0003 | *JRNRCV | 2026-06-06 18:11:17.000000 | NULL | 0 | 836 |
| POKEMO0004 | *JRNRCV | 2026-06-06 18:52:38.000000 | NULL | 0 | 836 |
| LIVRE | *FILE | 2026-09-22 13:50:41.000000 | NULL | 0 | 656 |
Ici, des récepteurs de journal : par nature, ils ne sont jamais « utilisés » au sens de la date. Ce n'est pas pour autant qu'on peut les supprimer sans réfléchir.
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
Attention : certains objets ne mettent pas à jour leur date d'utilisation (journaux, récepteurs, certaines zones de données). Vérifiez avant de supprimer, et sauvegardez d'abord.