sys.internal_partitions (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Database Azure SQL Managed Instance
Retourne une ligne pour chaque ensemble de lignes qui effectue le suivi des données internes pour les index columnstore sur les tables sur disque. Ces ensembles de lignes sont internes aux index columnstore et effectuent le suivi des lignes supprimées, des mappages de rowgroups et des rowgroups de magasin delta. 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 nonpartitionnée. 2 = deuxième partition, et ainsi de suite. |
internal_object_type | tinyint | Objets d’ensemble de lignes qui suivent les données internes de 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 destinée à chaque rowgroup, car les partitions peuvent avoir des lignes dans plusieurs rowgroups. Les lignes sont toujours présentes physiquement et occupent de l’espace dans le columnstore. COLUMN_STORE_DELTA_STORE : stocke les 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 gérer les suppressions pour mettre à jour 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 du columnstore. Lorsque le nombre de lignes supprimées dépasse 1048576, ils sont fusionnés dans la bitmap de suppression par le thread Tuple Mover d’arrière-plan ou par une commande de réorganisation 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 corrects dans le columnstore. Il stocke uniquement les clés pour les lignes qui se déplacent vers un autre rowgroup ; cela se produit lorsqu’un rowgroup delta est compressé dans le columnstore, et lorsqu’une opération de fusion fusionne des lignes à partir de deux rowgroups différents. |
Row_group_id | int | ID du rowgroup 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 pour 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 dernière page est activée. 0 = Valeur par défaut. La partition a désactivé l’optimisation de l’insertion de dernière page. |
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 reconstruit 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 trouver 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