Partager via


Structures des segments

Un segment est une table sans index cluster. Les segments ont une ligne dans sys.partitions, avec index_id = 0 pour chaque partition qu'ils utilisent. Par défaut, un segment comporte une partition unique. Lorsqu'un segment comporte plusieurs partitions, chacune d'elles possède une structure de segment contenant les données la concernant. Par exemple, si un segment comporte quatre partitions, il y a quatre structures de segment, une dans chaque partition.

Selon les types de données du segment, chaque structure contient une ou plusieurs unités d'allocation pour stocker et gérer les données d'une partition spécifique. Chaque segment contient au minimum une unité d'allocation IN_ROW_DATA par partition. Il contient également une unité d'allocation LOB_DATA par partition s'il possède des colonnes LOB (objets volumineux). Enfin, il contient une unité d'allocation ROW_OVERFLOW_DATA par partition s'il possède des colonnes de longueur variable dépassant le seuil de 8 060 octets par ligne. Pour plus d'informations sur les unités d'allocation, consultez Organisation des tables et des index.

La colonne first_iam_page de la vue système sys.system_internals_allocation_units pointe sur la première page IAM de la chaîne de pages IAM qui gère l'espace alloué au segment d'une partition spécifique. SQL Server utilise les pages IAM pour explorer le segment. Les pages de données et les lignes qu'elles contiennent ne sont ni classées dans un ordre spécifique, ni liées. La seule connexion logique entre les pages de données concerne les informations enregistrées dans les pages IAM.

Important

La vue système sys.system_internals_allocation_units est réservée à un usage exclusivement interne de MicrosoftSQL Server. La compatibilité future n'est pas garantie.

Les analyses de table ou les lectures séquentielles d'un segment explorent les pages IAM pour rechercher les étendues contenant des pages pour le segment. Comme la page IAM représente les étendues dans le même ordre d'apparition que dans les fichiers de données, les analyses en série du segment s'effectuent uniformément de haut en bas de chaque fichier. L'utilisation des pages IAM pour la définition de la séquence d'analyse signifie également que les lignes du segment ne sont généralement pas retournées dans l'ordre de leur insertion.

L'illustration suivante montre comment Moteur de base de données SQL Server utilise les pages IAM pour extraire des lignes de données dans un segment de partition unique.

Des pages IAM extraient des données dans un segment de partition unique