Oracle
 sql >> Base de données >  >> RDS >> Oracle

Essayer de déterminer la longueur maximale de Rowid dans Oracle

Un ROWID physique a une taille fixe dans une version Oracle donnée, il ne dépend pas du nombre de lignes dans une table. Il se compose du numéro du fichier de données, du numéro du bloc dans ce fichier et du numéro de la ligne dans ce bloc. Par conséquent, il est unique dans toute la base de données et permet un accès direct au bloc et à la ligne sans aucune autre recherche.

Alors que les choses dans le monde informatique continuent de croître, il est prudent de supposer que le format changera à l'avenir.

Outre le volume, il y a aussi des changements structurels, comme l'avènement des tablespaces transportables, qui ont rendu nécessaire le stockage du numéro d'objet (=numéro interne de la table/partition/sous-partition) à l'intérieur du ROWID.

Ou l'avènement des tables organisées Index (mentionnées par @ibre5041), qui ressemblent à une table, mais ne sont en réalité qu'un index sans une telle adresse physique (car les choses bougent constamment dans un index). Cela a rendu nécessaire l'introduction d'UROWID qui peuvent stocker des ROWID physiques et indexés.

Veuillez noter qu'un ROWID peut changer, par exemple si la ligne se déplace d'une partition de table à une autre, ou si la table est défragmentée pour combler les trous laissés par de nombreux DELETE.