ITL – Interested Transaction List, par Jonathan Lewis

Cet article est traduit du glossaire de Jonathan Lewis publié sur son blog. L’article original en anglais se trouve ici.

ITL est l’abréviation de Interested Transaction List. C’est une petite liste stockée dans l’entête de chaque bloc de table ou d’index.
Elle identifie les transactions qui ont récemment modifié le contenu de ce bloc. Lorsqu’une transaction veut modifier des enregistrements dans un bloc, elle doit acquérir une des entrées de l’ITL de ce bloc, et y écrire les informations d’identification.

La transaction ne doit acquérir qu’une seule entrée ITL pour un bloc, quel que soit le nombre d’enregistrements qu’elle doit y modifier.
Une transaction peut modifier plusieurs blocs, et doit posséder une entrée ITL dans chacun d’eux.

Si toutes les entrées ITL d’un bloc sont en cours d’utilisation, la transaction peut ajouter une nouvelle entrée à la liste, à condition qu’il y ait assez d’espace libre dans le bloc, et que (pour les anciennes versions d’Oracle) la taille de l’ITL n’a pas atteint sa limite définie par MAXTRANS. A partir de la 10g, Oracle ignore le paramètre MAXTRANS, (et cela peut créer des problèmes dans les indexes – voir space wastage problems in indexes).

La taille initiale de la liste ITL est paramétrée par INITRANS avec un minimum qui dépend de la version d’Oracle et du type d’objet.