Service SQL IBM i (AS/400) · Fonction table
QSYS2.MTI_INFO
Index temporaires maintenus (MTI)
Renvoie les index temporaires maintenus (MTI) créés par Db2 pour i sur une table, avec leur clé, leur taille, leur état et le travail demandeur.
À quoi ça sert
Cette fonction de table renvoie des informations sur les index temporaires maintenus (MTI) que l'optimiseur de Db2 pour i crée pour accélérer des requêtes. On filtre par bibliothèque (TABLE_SCHEMA) et par table (TABLE_NAME), tous deux facultatifs.
Chaque ligne donne la définition de la clé (KEY_DEFINITION), l'état, la taille (MTI_SIZE), le nombre de références, les horodatages de création et de construction, le caractère réutilisable ou clairsemé de l'index et le travail à l'origine de la création.
C'est un outil d'analyse de performance : la présence répétée d'un MTI sur une table peut indiquer qu'un index permanent manque.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT TABLE_SCHEMA, TABLE_NAME, KEY_DEFINITION, STATE, MTI_SIZE FROM TABLE(QSYS2.MTI_INFO(TABLE_SCHEMA => 'QF_SQL'))
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| TABLE_SCHEMA Bibliothèque de la table | TABLE_NAME Nom de la table | KEY_DEFINITION Définition de la clé | STATE État | MTI_SIZE Taille des index temporaires maintenus |
|---|---|---|---|---|
| QF_SQL | FILMS | TITRE, ID_FILM | VALID | 162456 |
| QF_SQL | REALISATEURS | DATE_NAISSANCE | VALID | 162456 |
| QF_SQL | REALISATEURS | NOM, PRENOM, DATE_NAISSANCE | VALID | 162456 |
| QF_SQL | ACTEURS | NATIONALITE, PRENOM, NOM, DATE_NAISSANCE | VALID | 162456 |
| QF_SQL | REALISATEURS | NATIONALITE, NOM, PRENOM, DATE_NAISSANCE | VALID | 162456 |
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
Renvoyer des informations sur tous les index temporaires maintenus qui existent sur la table APPLIB/EMPLOYEE.
-- Description: Return information about all MTIs that exist over the
-- APPLIB/EMPLOYEE table.
SELECT * FROM TABLE(QSYS2.MTI_INFO('APPLIB', 'EMPLOYEE'));
Bon à savoir
Un MTI fréquemment référencé (REFERENCE_COUNT élevé) est un bon candidat à transformer en index permanent.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
TABLE_SCHEMA |
VARCHAR(128) | NULL | Bibliothèque de la table |
TABLE_NAME |
VARCHAR(128) | NULL | Nom de la table |
Colonnes renvoyées (26)
Afficher les 26 colonnes
| Colonne | Type | Signification |
|---|---|---|
TABLE_SCHEMA |
VARCHAR(128) | Bibliothèque de la table |
TABLE_NAME |
VARCHAR(128) | Nom de la table |
TABLE_PARTITION |
VARCHAR(128) | Partition de la table |
REFERENCE_COUNT |
BIGINT | Nombre de références |
KEYS |
INTEGER | Nombre de clés |
KEY_DEFINITION |
DOUBLE-BYTE CHAR LARGE OBJECT | Définition de la clé |
STATE |
VARCHAR(20) | État |
MTI_SIZE |
BIGINT | Taille des index temporaires maintenus |
CREATE_TIME |
TIMESTAMP | Horodatage de création |
LAST_BUILD_START_TIME |
TIMESTAMP | Horodatage de début de la dernière construction |
LAST_BUILD_END_TIME |
TIMESTAMP | Horodatage de fin de la dernière construction |
REUSABLE |
VARCHAR(3) | Réutilisable |
SPARSE |
VARCHAR(3) | Index clairsemé |
SPARSE_DEFINITION |
DOUBLE-BYTE CHAR LARGE OBJECT | Définition de l'index clairsemé |
QRO_HASH |
VARCHAR(8) | Hachage de l'optimiseur de requêtes (QRO) |
PLAN_IDENTIFIER |
DECIMAL(20, 0) | Identifiant du plan |
USER_NAME |
VARCHAR(10) | Nom du profil utilisateur |
QUALIFIED_JOB_NAME |
VARCHAR(28) | Nom qualifié du travail |
JOB_NAME |
VARCHAR(10) | Nom du travail |
JOB_USER |
VARCHAR(10) | Profil utilisateur du travail |
JOB_NUMBER |
VARCHAR(6) | Numéro du travail |
MTI_NAME |
VARCHAR(128) | Nom de l'index temporaire maintenu |
LIBRARY_NAME |
VARCHAR(10) | Nom de la bibliothèque |
FILE_NAME |
VARCHAR(10) | Nom du fichier |
QRO_HASH_JSON |
CHAR LARGE OBJECT | Hachage de l'optimiseur de requêtes (QRO) au format JSON |
PLAN_IDENTIFIER_JSON |
CHAR LARGE OBJECT | Identifiant du plan (JSON) |