Recette SQL IBM i (AS/400) · Stockage
Les plus gros fichiers d'un répertoire de l'IFS
Les plus gros fichiers d'un répertoire de l'IFS et de ses sous-répertoires, en Mo, avec leur dernière utilisation et leur propriétaire.
Le besoin
L'IFS se remplit de fichiers de logs, d'exports et de sauvegardes. WRKLNK ne trie pas par taille ; en SQL, oui.
La requête
SELECT PATH_NAME, OBJECT_TYPE, DECIMAL(DATA_SIZE / 1048576.0, 15, 2) AS TAILLE_MO,
LAST_USED_TIMESTAMP, OBJECT_OWNER
FROM TABLE(QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/QIBM/ProdData/OS/SQLLIB',
SUBTREE_DIRECTORIES => 'YES')) F
WHERE OBJECT_TYPE = '*STMF'
ORDER BY DATA_SIZE DESC
FETCH FIRST 10 ROWS ONLY
QSYS2.IFS_OBJECT_STATISTICS parcourt un répertoire (et ses sous-répertoires si SUBTREE_DIRECTORIES => 'YES'). DATA_SIZE est la taille en octets ; on ne garde que les fichiers (*STMF).
Le résultat sur un IBM i 7.5
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| PATH_NAME Chemin | OBJECT_TYPE Type de l'objet | TAILLE_MO Taille (Mo) | LAST_USED_TIMESTAMP Horodatage de dernière utilisation | OBJECT_OWNER Propriétaire de l'objet |
|---|---|---|---|---|
| /QIBM/ProdData/OS/SQLLIB/bin/xercesImpl.jar | *STMF | 1.37 | 2025-06-25 00:00:00 | QSYS |
| /QIBM/ProdData/OS/SQLLIB/bin/spatiotemporal-core.jar | *STMF | 1.35 | 2025-10-15 00:00:00 | QSYS |
| /QIBM/ProdData/OS/SQLLIB/bin/libsqlejext64.so | *STMF | 0.8 | 2026-10-01 00:00:00 | QSYS |
| /QIBM/ProdData/OS/SQLLIB/bin/libsqlejext.so | *STMF | 0.68 | 2025-06-25 00:00:00 | QSYS |
| /QIBM/ProdData/OS/SQLLIB/bin/QPZA_QSJ033405770SS10007R05M00505000000003 | *STMF | 0.59 | 2025-06-25 00:00:00 | QSYS |
Exemple sur un répertoire fourni par IBM, /QIBM/ProdData/OS/SQLLIB : les plus gros fichiers sont des bibliothèques du produit Db2, d'environ 1 Mo.
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
Visez vos répertoires applicatifs (/home, /tmp, vos dossiers d'échange). Évitez de partir de / : le parcours de tout l'IFS peut durer des heures.