sys.internal_partitions (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed Instance

Retourne une ligne pour chaque ensemble de lignes qui effectue le suivi des données internes pour les index columnstore sur des tables sur disque. Ces ensembles de lignes sont internes aux index columnstore et suivent les lignes supprimées, les mappages de rowgroup et les rowgroups delta store. Ils effectuent le suivi des données pour chaque partition de table ; chaque table a au moins une partition. SQL Server recrée les ensembles de lignes chaque fois qu’il reconstruit l’index columnstore.

Nom de la colonne Type de données Description
partition_id bigint ID de partition pour cette partition. Unique dans la base de données.
object_id int ID d’objet de la table qui contient la partition.
index_id int ID d’index pour l’index columnstore défini sur la table.

1 = index columnstore cluster

2 = index columnstore non cluster
partition_number int Numéro de partition.

1 = première partition d’une table partitionnée, ou partition unique d’une table non partitionnée.

2 = deuxième partition, et ainsi de suite.
internal_object_type tinyint Objets d’ensemble de lignes qui effectuent le suivi des données internes pour l’index columnstore.

2 = COLUMN_STORE_DELETE_BITMAP

3 = COLUMN_STORE_DELTA_STORE

4 = COLUMN_STORE_DELETE_BUFFER

5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc nvarchar(60) COLUMN_STORE_DELETE_BITMAP : cet index bitmap suit les lignes marquées comme supprimées du columnstore. La bitmap est pour chaque rowgroup, car les partitions peuvent avoir des lignes dans plusieurs rowgroups. Les lignes sont toujours physiquement présentes et occupent de l’espace dans le columnstore.

COLUMN_STORE_DELTA_STORE : stocke des groupes de lignes, appelés rowgroups, qui n’ont pas été compressés dans le stockage en colonnes. Chaque partition de table peut avoir zéro ou plusieurs rowgroups deltastore.

COLUMN_STORE_DELETE_BUFFER : pour la gestion des suppressions vers des index columnstore non cluster pouvant être mis à jour. Lorsqu’une requête supprime une ligne de la table rowstore sous-jacente, la mémoire tampon de suppression effectue le suivi de la suppression à partir du columnstore. Lorsque le nombre de lignes supprimées dépasse 1048576, elles sont fusionnées dans le bitmap de suppression par le thread Tuple Mover en arrière-plan ou par une commande Reorganize explicite. À un moment donné, l’union de la bitmap de suppression et de la mémoire tampon de suppression représente toutes les lignes supprimées.

COLUMN_STORE_MAPPING_INDEX : utilisé uniquement lorsque l’index columnstore cluster a un index secondaire non cluster. Cela mappe les clés d’index non cluster au groupe de lignes et à l’ID de ligne appropriés dans le columnstore. Il stocke uniquement les clés pour les lignes qui se déplacent vers un autre groupe de lignes ; cela se produit lorsqu’un groupe de lignes delta est compressé dans le columnstore et qu’une opération de fusion fusionne des lignes de deux rowgroups différents.
Row_group_id int ID du groupe de lignes deltastore. Chaque partition de table peut avoir zéro ou plusieurs rowgroups deltastore.
hobt_id bigint ID de l’objet d’ensemble de lignes interne (HoBT). Il s’agit d’une bonne clé pour joindre d’autres DMV afin d’obtenir plus d’informations sur les caractéristiques physiques de l’ensemble de lignes interne.
rows bigint Nombre approximatif de lignes dans cette partition.
data_compression tinyint État de compression de l’ensemble de lignes :

0 = AUCUN

1 = LIGNE

2 = PAGE
data_compression_desc nvarchar(60) État de compression de chaque partition. Les valeurs possibles pour les tables rowstore sont AUCUN, LIGNE et PAGE. Les valeurs possibles pour les tables columnstore sont COLUMNSTORE et COLUMNSTORE_ARCHIVE.
optimize_for_sequential_key bit 1 = L’optimisation de l’insertion de la dernière page est activée pour la partition.

0 = Valeur par défaut. L’optimisation de l’insertion de dernière page est désactivée pour la partition.

Autorisations

Nécessite l’appartenance au rôle public. Pour plus d'informations, consultez Metadata Visibility Configuration.

Remarques d'ordre général

SQL Server recrée de nouveaux index internes columnstore chaque fois qu’il crée ou regénère un index columnstore.

Exemples

R. Afficher tous les ensembles de lignes internes d’une table

Cet exemple retourne tous les ensembles de lignes columnstore internes d’une table. Vous pouvez également utiliser le hobt_id pour obtenir plus d’informations sur l’ensemble de lignes spécifique.

SELECT i.object_id, i.index_id, i.name, p.hobt_id, p.internal_object_type_id, p.internal_object_type_desc  
FROM sys.internal_partitions AS p  
JOIN sys.indexes AS i  
on i.object_id = p.object_id  
WHERE p.object_id = OBJECT_ID ( '<table name' ) ;  

Voir aussi

Vues de catalogue d'objets (Transact-SQL)
Affichages catalogue (Transact-SQL)
Questions fréquentes sur l'interrogation des catalogues système de SQL Server