Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

QSYS2.IFS_OBJECT_STATISTICS

Statistiques des objets de l'IFS

Parcourt un répertoire de l'IFS et renvoie pour chaque objet sa taille, ses dates, son propriétaire, son CCSID et ses attributs : un DSPLNK en SQL.

À quoi ça sert

La fonction de table part d'un chemin (START_PATH_NAME) et renvoie une ligne par objet : type, lien symbolique, numéro d'ASP, description, horodatages de création, d'accès, de modification des données et de l'objet, dernière utilisation et nombre de jours d'utilisation, taille allouée et taille des données, CCSID, page de codes, nombre de liens physiques, attributs (lecture seule, masqué, temporaire), propriétaire, identifiants numériques d'utilisateur et de groupe, groupe principal et liste d'autorisation.

Quatre paramètres encadrent le parcours : SUBTREE_DIRECTORIES (défaut YES) pour descendre ou non dans les sous-répertoires, OBJECT_TYPE_LIST pour limiter les types, OMIT_LIST pour exclure des éléments et IGNORE_ERRORS (défaut YES). L'exemple d'IBM liste d'abord /usr seul, puis son arbre complet.

Avec SQL, on trie par taille pour trouver les plus gros fichiers, on filtre par date pour ménager un nettoyage, ou on contrôle les propriétaires, ce que WRKLNK ne fait pas en une seule requête.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER 
    FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/usr', 
                                    SUBTREE_DIRECTORIES => 'NO'))

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

PATH_NAME Chemin OBJECT_TYPE Type de l'objet DATA_SIZE Taille des données OBJECT_OWNER Propriétaire de l'objet
/usr *DIR 8192 QSYS
/usr/bin *DIR 90112 QSYS
/usr/icu4c *SYMLNK 38 QSYS
/usr/include *SYMLNK 42 QSYS
/usr/ccs *SYMLNK 34 QSYS

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

Lister les informations de base de tous les objets du répertoire /usr, avec ou sans ses sous-répertoires.

-- Description: List basic information for all the objects in directory /usr. 
    SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER 
    FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/usr', 
                                    SUBTREE_DIRECTORIES => 'NO')); 
        -- Description: List basic information for  all the objects in /usr, processing all 
  -- subdirectories as well. 
    SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER 
    FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/usr', 
                                    SUBTREE_DIRECTORIES => 'YES'));

Bon à savoir

Le parcours est récursif par défaut (SUBTREE_DIRECTORIES => 'YES'). Sur la racine ou un gros répertoire, la requête peut durer très longtemps : cible un sous-répertoire et sélectionne seulement les colonnes utiles.

Paramètres

ParamètreTypePar défautSignification
START_PATH_NAME DOUBLE-BYTE CHAR LARGE OBJECT obligatoire Chemin de départ
SUBTREE_DIRECTORIES VARCHAR(3) 'YES' Parcours des sous-répertoires
OBJECT_TYPE_LIST VARCHAR(1408) '' Liste des types d'objets
OMIT_LIST DOUBLE-BYTE CHAR LARGE OBJECT '' Liste des éléments à omettre
IGNORE_ERRORS VARCHAR(3) 'YES' Ignorer les erreurs

Colonnes renvoyées (90)

Afficher les 90 colonnes
ColonneTypeSignification
PATH_NAME DOUBLE-BYTE CHAR LARGE OBJECT Chemin
OBJECT_TYPE VARCHAR(10) Type de l'objet
SYMBOLIC_LINK DOUBLE-BYTE CHAR LARGE OBJECT Lien symbolique
ASP_NUMBER INTEGER Numéro de l'ASP
TEXT_DESCRIPTION GRAPHIC VARYING Texte descriptif
FILE_IDENTIFIER_NUMBER BIGINT Numéro d'identifiant du fichier
GENERATION_IDENTIFIER BIGINT Identifiant de génération
FILE_SYSTEM_IDENTIFIER BIGINT Identifiant du système de fichiers
FILE_IDENTIFIER BINARY(16) Identifiant du fichier
FILE_ACCESS BINARY(4) Accès au fichier
CREATE_TIMESTAMP TIMESTAMP Horodatage de création
ACCESS_TIMESTAMP TIMESTAMP Horodatage du dernier accès
DATA_CHANGE_TIMESTAMP TIMESTAMP Horodatage de la dernière modification des données
OBJECT_CHANGE_TIMESTAMP TIMESTAMP Horodatage de dernière modification de l'objet
LAST_USED_TIMESTAMP TIMESTAMP Horodatage de dernière utilisation
DAYS_USED_COUNT INTEGER Nombre de jours d'utilisation
LAST_RESET_TIMESTAMP TIMESTAMP Horodatage de la dernière réinitialisation
ALLOCATED_SIZE BIGINT Taille allouée
DATA_SIZE BIGINT Taille des données
CCSID INTEGER CCSID
CODE_PAGE INTEGER Page de codes
EXTENDED_ATTRIBUTE_COUNT BIGINT Nombre d'attributs étendus
CRITICAL_EXTENDED_ATTRIBUTE_COUNT BIGINT Nombre d'attributs étendus critiques
EXTENDED_ATTRIBUTE_SIZE BIGINT Taille des attributs étendus
HARD_LINK_COUNT INTEGER Nombre de liens physiques
OBJECT_READ_ONLY VARCHAR(3) Objet en lecture seule
OBJECT_HIDDEN VARCHAR(3) Objet masqué
TEMPORARY_OBJECT VARCHAR(3) Objet temporaire
SYSTEM_FILE VARCHAR(3) Fichier système
SYSTEM_USAGE VARCHAR(6) Utilisation système
DEVICE_SPECIAL_FILE BIGINT Fichier spécial d'unité
OBJECT_OWNER VARCHAR(10) Propriétaire de l'objet
USER_ID_NUMBER BIGINT Numéro d'identifiant de l'utilisateur (UID)
PRIMARY_GROUP VARCHAR(10) Groupe principal
GROUP_ID_NUMBER BIGINT Numéro d'identifiant du groupe
AUTHORIZATION_LIST VARCHAR(10) Liste d'autorisation
SET_EFFECTIVE_USER_ID VARCHAR(3) Positionnement de l'identifiant d'utilisateur effectif
SET_EFFECTIVE_GROUP_ID VARCHAR(3) Positionnement de l'identifiant de groupe effectif
AUTHORITY_COLLECTION_VALUE VARCHAR(10) Valeur de collecte des droits
OBJECT_AUDIT VARCHAR(7) Audit de l'objet
OBJECT_AUDIT_CREATE VARCHAR(7) Audit à la création des objets
JOURNALED VARCHAR(3) Indicateur de journalisation
JOURNAL_LIBRARY VARCHAR(10) Bibliothèque du journal
JOURNAL_NAME VARCHAR(10) Nom du journal
JOURNAL_BEFORE_IMAGE VARCHAR(3) Journalisation des images avant
JOURNAL_AFTER_IMAGE VARCHAR(3) Journalisation des images après
JOURNAL_IDENTIFIER VARCHAR(10) Identifiant de journal
JOURNAL_START_TIMESTAMP TIMESTAMP Horodatage de début de journalisation
JOURNAL_OPTIONAL_ENTRIES VARCHAR(3) Écritures facultatives du journal
JOURNAL_SUBTREE VARCHAR(3) Journalisation de l'arborescence
PARTIAL_TRANSACTION CHAR(1) Transaction partielle
APPLY_STARTING_RECEIVER_LIBRARY VARCHAR(10) Bibliothèque du récepteur de journal de départ de l'application
APPLY_STARTING_RECEIVER VARCHAR(10) Récepteur de journal de départ de l'application
APPLY_STARTING_RECEIVER_ASP VARCHAR(10) ASP du récepteur de journal de départ de l'application
OBJECT_SIGNED VARCHAR(3) Objet signé
SYSTEM_TRUSTED_SOURCE VARCHAR(3) Source de confiance du système
MULTIPLE_SIGNATURES VARCHAR(3) Signatures multiples
OBJECT_DOMAIN VARCHAR(7) Domaine de l'objet
BLOCK_SIZE INTEGER Taille de bloc
AUX_STORAGE_ALLOCATION VARCHAR(8) Allocation de mémoire auxiliaire
AUX_STORAGE_OVERFLOW VARCHAR(3) Débordement de mémoire auxiliaire
MAIN_STORAGE_ALLOCATION VARCHAR(8) Allocation de mémoire principale
STORAGE_FREED VARCHAR(3) Stockage libéré
STORED_LOCAL VARCHAR(3) Stocké en local
VIRTUAL_DISK_STORAGE VARCHAR(3) Stockage de disque virtuel
DIRECTORY_FORMAT CHAR(6) Format du répertoire
STREAM_FILE_FORMAT CHAR(6) Format du fichier flux
UDFS_FILE_FORMAT CHAR(6) Format de fichier de l'UDFS
UDFS_PREFERRED_STORAGE CHAR(3) Stockage préféré de l'UDFS
UDFS_TEMPORARY_OBJECT VARCHAR(3) Objet temporaire de l'UDFS
CASE_SENSITIVE_FILE_SYSTEM VARCHAR(3) Système de fichiers sensible à la casse
RESTRICT_RENAME_AND_UNLINK VARCHAR(3) Restriction du renommage et de la suppression de lien
PC_ARCHIVE VARCHAR(3) Attribut d'archivage PC
SYSTEM_ARCHIVE VARCHAR(3) Attribut d'archive système
ALLOW_SAVE VARCHAR(3) Sauvegarde autorisée
SYSTEM_RESTRICT_SAVE VARCHAR(3) Sauvegarde restreinte par le système
INHERIT_ALLOW_CHECKPOINT_WRITER VARCHAR(3) Héritage de l'autorisation d'écriture du point de contrôle
ALLOW_WRITE_DURING_SAVE VARCHAR(3) Écriture autorisée pendant la sauvegarde
EXIT_PROGRAM_OPEN_CLOSE VARCHAR(3) Programme de sortie à l'ouverture et à la fermeture
EXIT_PROGRAM_OPEN_CLOSE_DIRECTORY VARCHAR(3) Programme de sortie à l'ouverture et à la fermeture (répertoire)
EXIT_PROGRAM_SCAN VARCHAR(11) Programme de sortie d'analyse
EXIT_PROGRAM_SCAN_DIRECTORY VARCHAR(11) Programme de sortie d'analyse (répertoire)
SCAN_STATUS VARCHAR(12) Statut d'analyse
CCSID_SCAN INTEGER Analyse du CCSID
CCSID_SCAN_SUCCESS INTEGER Succès de l'analyse du CCSID
SCAN_SIGNATURES_DIFFERENT VARCHAR(3) Signatures d'analyse différentes
BINARY_SCAN VARCHAR(3) Analyse binaire
CHECKED_OUT VARCHAR(3) Objet extrait
CHECKED_OUT_TIMESTAMP TIMESTAMP Horodatage de l'extraction
CHECKED_OUT_USER VARCHAR(10) Utilisateur ayant extrait l'objet