Aller au contenu

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