Service SQL IBM i (AS/400) · Fonction table
QSYS2.OBJECT_STATISTICS
Statistiques et description des objets
Liste les objets d'une bibliothèque avec taille, propriétaire, dates d'utilisation et de sauvegarde : l'équivalent SQL de DSPOBJD.
À quoi ça sert
Cette fonction de table renvoie la description des objets d'une bibliothèque, comme DSPOBJD. Les paramètres sont la bibliothèque (OBJECT_SCHEMA, ou une valeur comme *ALLUSR), la liste des types d'objets (OBJTYPELIST, par exemple '*LIB' ou 'PGM SRVPGM') et, facultativement, un nom d'objet.
Elle donne la taille, le propriétaire, les dates de création et de modification, la dernière utilisation (LAST_USED_TIMESTAMP) et le nombre de jours d'utilisation, les informations de sauvegarde et de restauration, la journalisation, le fichier source d'origine, le compilateur et la signature de l'objet.
Avec SQL, on repère par exemple les programmes jamais utilisés, les plus gros objets ou les objets non sauvegardés, et l'on combine la fonction à d'autres services avec LATERAL.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT S1.OBJNAME, P.OBJCREATED, P.OBJNAME, P.OBJLONGNAME, P.OBJTYPE,
P.SQL_OBJECT_TYPE, P.OBJDEFINER,
P.LAST_USED_TIMESTAMP, P.LAST_RESET_TIMESTAMP
FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALLUSR', 'LIB ')) AS S1,
LATERAL
(SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS(S1.OBJNAME,
'PGM SRVPGM')) AS X) AS P
WHERE S1.OBJNAME NOT LIKE 'Q%' AND
P.LAST_USED_TIMESTAMP IS NULL
OR P.DAYS_USED_COUNT = 0
ORDER BY OBJCREATED ASC
LIMIT 100
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| OBJNAME Nom de l'objet | OBJCREATED Horodatage de création de l'objet | OBJLONGNAME Nom long de l'objet | OBJTYPE Type de l'objet | SQL_OBJECT_TYPE Type d'objet SQL | OBJDEFINER Profil utilisateur ayant défini l'objet | LAST_USED_TIMESTAMP Horodatage de dernière utilisation | LAST_RESET_TIMESTAMP Horodatage de la dernière réinitialisation |
|---|---|---|---|---|---|---|---|
| PROCCAT | 2005-03-16 16:28:11.000000 | PROCCAT | *PGM | PROCEDURE | THEIS | NULL | NULL |
| "+" | 2005-03-16 16:28:11.000000 | + | *SRVPGM | FUNCTION | THEIS | NULL | NULL |
| AVG | 2005-03-16 16:28:12.000000 | AVG | *SRVPGM | FUNCTION | THEIS | NULL | NULL |
| EUVFF | 2005-03-16 16:28:12.000000 | EUVFF | *SRVPGM | FUNCTION | THEIS | NULL | NULL |
| EXO1C | 2005-03-17 09:16:06.000000 | EXO1C | *PGM | NULL | THEIS | NULL | NULL |
Données anonymisées : les noms de système, de profils, de
bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma
JOBISQL sont des objets de démonstration créés pour ce site.
L'exemple d'IBM
Trouver les programmes les moins utilisés.
-- Description: Find programs that are the least utilized
SELECT S1.OBJNAME, P.OBJCREATED, P.OBJNAME, P.OBJLONGNAME, P.OBJTYPE,
P.SQL_OBJECT_TYPE, P.OBJDEFINER,
P.LAST_USED_TIMESTAMP, P.LAST_RESET_TIMESTAMP
FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALLUSR', 'LIB ')) AS S1,
LATERAL
(SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS(S1.OBJNAME,
'PGM SRVPGM')) AS X) AS P
WHERE S1.OBJNAME NOT LIKE 'Q%' AND
P.LAST_USED_TIMESTAMP IS NULL
OR P.DAYS_USED_COUNT = 0
ORDER BY OBJCREATED ASC
LIMIT 100;
Bon à savoir
Une valeur nulle dans LAST_USED_TIMESTAMP signifie que l'objet n'a pas été utilisé depuis la dernière réinitialisation des statistiques (LAST_RESET_TIMESTAMP), pas qu'il n'a jamais servi.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
OBJECT_SCHEMA |
VARCHAR(258) | obligatoire | Bibliothèque de l'objet |
OBJTYPELIST |
VARCHAR(812) | obligatoire | Liste des types d'objets à examiner |
OBJECT_NAME |
VARCHAR(258) | NULL | Nom de l'objet |
Colonnes renvoyées (70)
Afficher les 70 colonnes
| Colonne | Type | Signification |
|---|---|---|
OBJNAME |
VARCHAR(10) | Nom de l'objet |
OBJTYPE |
VARCHAR(8) | Type de l'objet |
OBJOWNER |
VARCHAR(10) | Propriétaire de l'objet |
OBJDEFINER |
VARCHAR(10) | Profil utilisateur ayant défini l'objet |
OBJCREATED |
TIMESTAMP | Horodatage de création de l'objet |
OBJSIZE |
DECIMAL(15, 0) | Taille de l'objet |
OBJTEXT |
VARCHAR(50) | Texte descriptif de l'objet |
OBJLONGNAME |
VARCHAR(128) | Nom long de l'objet |
LAST_USED_TIMESTAMP |
TIMESTAMP | Horodatage de dernière utilisation |
LAST_USED_OBJECT |
VARCHAR(4) | Dernier objet utilisé |
DAYS_USED_COUNT |
INTEGER | Nombre de jours d'utilisation |
LAST_RESET_TIMESTAMP |
TIMESTAMP | Horodatage de la dernière réinitialisation |
IASP_NUMBER |
SMALLINT | Numéro de l'ASP indépendant |
IASP_NAME |
VARCHAR(10) | Nom de l'ASP indépendant |
OBJATTRIBUTE |
VARCHAR(10) | Attribut de l'objet |
OBJLONGSCHEMA |
VARCHAR(128) | Nom long de la bibliothèque de l'objet |
TEXT |
GRAPHIC VARYING | Texte descriptif |
SQL_OBJECT_TYPE |
VARCHAR(9) | Type d'objet SQL |
OBJLIB |
VARCHAR(10) | Bibliothèque de l'objet |
CHANGE_TIMESTAMP |
TIMESTAMP | Horodatage de la modification |
USER_CHANGED |
VARCHAR(3) | Utilisateur ayant modifié l'objet |
SOURCE_FILE |
VARCHAR(10) | Fichier source |
SOURCE_LIBRARY |
VARCHAR(10) | Bibliothèque source |
SOURCE_MEMBER |
VARCHAR(10) | Membre source |
SOURCE_TIMESTAMP |
TIMESTAMP | Horodatage de la source |
CREATED_SYSTEM |
VARCHAR(8) | Système de création |
CREATED_SYSTEM_VERSION |
VARCHAR(9) | Version du système de création |
LICENSED_PROGRAM |
VARCHAR(7) | Programme sous licence |
LICENSED_PROGRAM_VERSION |
VARCHAR(9) | Version du programme sous licence |
COMPILER |
VARCHAR(7) | Compilateur |
COMPILER_VERSION |
VARCHAR(9) | Version du compilateur |
OBJECT_CONTROL_LEVEL |
CHAR(8) | Niveau de contrôle de l'objet |
BUILD_ID |
BINARY(16) | Identifiant de construction |
PTF_NUMBER |
CHAR(7) | Numéro de la PTF |
APAR_ID |
CHAR(6) | Identifiant de l'APAR |
USER_DEFINED_ATTRIBUTE |
VARCHAR(10) | Attribut défini par l'utilisateur |
ALLOW_CHANGE_BY_PROGRAM |
VARCHAR(3) | Modification par programme autorisée |
CHANGED_BY_PROGRAM |
VARCHAR(3) | Modifié par un programme |
COMPRESSED |
VARCHAR(4) | Compressé |
PRIMARY_GROUP |
VARCHAR(10) | Groupe principal |
STORAGE_FREED |
VARCHAR(3) | Stockage libéré |
ASSOCIATED_SPACE_SIZE |
INTEGER | Taille de l'espace associé |
OPTIMUM_SPACE_ALIGNMENT |
VARCHAR(3) | Alignement optimal de l'espace |
OVERFLOW_STORAGE |
VARCHAR(3) | Stockage en débordement |
OBJECT_DOMAIN |
VARCHAR(7) | Domaine de l'objet |
OBJECT_AUDIT |
VARCHAR(10) | Audit de l'objet |
OBJECT_SIGNED |
VARCHAR(3) | Objet signé |
SYSTEM_TRUSTED_SOURCE |
VARCHAR(3) | Source de confiance du système |
MULTIPLE_SIGNATURES |
VARCHAR(3) | Signatures multiples |
SAVE_TIMESTAMP |
TIMESTAMP | Horodatage de la sauvegarde |
RESTORE_TIMESTAMP |
TIMESTAMP | Horodatage de la restauration |
SAVE_WHILE_ACTIVE_TIMESTAMP |
TIMESTAMP | Horodatage de la sauvegarde en cours d'utilisation |
SAVE_COMMAND |
VARCHAR(10) | Commande de sauvegarde |
SAVE_DEVICE |
VARCHAR(5) | Unité de sauvegarde |
SAVE_FILE_NAME |
VARCHAR(10) | Nom du fichier de sauvegarde |
SAVE_FILE_LIBRARY |
VARCHAR(10) | Bibliothèque du fichier de sauvegarde |
SAVE_VOLUME |
VARCHAR(71) | Volume de sauvegarde |
SAVE_LABEL |
VARCHAR(17) | Étiquette de sauvegarde |
SAVE_SEQUENCE_NUMBER |
DECIMAL(10, 0) | Numéro de séquence de sauvegarde |
LAST_SAVE_SIZE |
DECIMAL(15, 0) | Taille de la dernière sauvegarde |
JOURNALED |
VARCHAR(3) | Indicateur de journalisation |
JOURNAL_NAME |
VARCHAR(10) | Nom du journal |
JOURNAL_LIBRARY |
VARCHAR(10) | Bibliothèque du journal |
JOURNAL_IMAGES |
VARCHAR(6) | Images enregistrées dans le journal |
OMIT_JOURNAL_ENTRY |
VARCHAR(7) | Entrées de journal à omettre |
REMOTE_JOURNAL_FILTER |
VARCHAR(3) | Filtre du journal distant |
JOURNAL_START_TIMESTAMP |
TIMESTAMP | Horodatage de début de journalisation |
APPLY_STARTING_RECEIVER |
VARCHAR(10) | Récepteur de journal de départ de l'application |
APPLY_STARTING_RECEIVER_LIBRARY |
VARCHAR(10) | Bibliothèque du récepteur de journal de départ de l'application |
AUTHORITY_COLLECTION_VALUE |
VARCHAR(10) | Valeur de collecte des droits |