sys.column_store_row_groups (Transact-SQL)
S’applique à : SQL Server 2012 (11.x) et azure SQL Managed Instance ultérieure
Fournit des informations sur les index cluster columnstore pour chaque segment afin d'aider l'administrateur à prendre des décisions de gestion du système. sys.column_store_row_groups a une colonne pour le nombre total de lignes stockées physiquement (y compris celles marquées comme supprimées) et une colonne pour le nombre de lignes marquées comme supprimées. Utilisez sys.column_store_row_groups pour déterminer quels groupes de lignes ont un pourcentage élevé de lignes supprimées et doivent être reconstruits.
Nom de la colonne | Type de données | Description |
---|---|---|
object_id | int | ID de la table sur laquelle cet index est défini. |
index_id | int | ID de l'index de la table qui contient cet index columnstore. |
partition_number | int | ID de la partition de table qui contient le row_group_id de groupe de lignes. Utilisez partition_number pour joindre cette vue DMV à sys.partitions. |
row_group_id | int | Numéro de groupe de lignes associé à ce groupe de lignes. Cet ID est unique dans la partition. -1 = fin d’une table en mémoire. |
delta_store_hobt_id | bigint | Hobt_id pour le groupe de lignes OPEN dans le magasin delta. NULL si le groupe de lignes n’est pas dans le magasin delta. NULL pour la fin d’une table en mémoire. |
state | tinyint | Numéro d'ID associé à state_description. 0 = INVISIBLE 1 = OPEN 2 = CLOSED 3 = COMPRESSÉ 4 = TOMBSTONE |
state_description | nvarchar(60) | Description de l'état permanent du groupe de lignes : INVISIBLE -Un segment compressé masqué dans le processus de génération à partir de données dans un magasin delta. Les actions de lecture utiliseront la banque delta jusqu'à ce que le segment compressé masqué soit terminé. Ensuite, le nouveau le segment est rendu visible, et la banque delta source est supprimée. OPEN - Groupe de lignes en lecture/écriture qui accepte de nouveaux enregistrements. Un groupe de lignes ouvert est toujours au format rowstore et n'a pas été compressé au format columnstore. CLOSED - Groupe de lignes qui a été rempli, mais pas encore compressé par le processus de déplacement du tuple. COMPRESSÉ : groupe de lignes rempli et compressé. |
total_rows | bigint | Nombre total de lignes stockées physiquement dans le groupe de lignes. Certaines peuvent avoir été supprimées, mais elles sont toujours stockées. Le nombre maximal de lignes d'un groupe de lignes est 1 048 576 (hexadécimal FFFFF). |
deleted_rows | bigint | Nombre total de lignes marquées comme étant supprimées dans le groupe de lignes. Cette valeur est toujours 0 pour les groupes de lignes DELTA. |
size_in_bytes | bigint | Taille en octets de toutes les données dans ce groupe de lignes (sans les métadonnées ou les dictionnaires partagés), pour les rowgroups DELTA et COLUMNSTORE. |
Notes
Retourne une ligne pour chaque groupe de lignes columnstore pour chaque table ayant un index columnstore cluster ou non cluster.
Utilisez sys.column_store_row_groups pour déterminer le nombre de lignes incluses dans le groupe de lignes et la taille du groupe de lignes.
Lorsque le nombre de lignes supprimées dans un groupe de lignes atteint un fort pourcentage du nombre total de lignes, la table est moins efficace. Reconstruisez l'index columnstore pour réduire la taille de la table, ce qui réduit les E/S disque nécessaires pour lire la table. Pour reconstruire l’index columnstore, utilisez l’option REBUILD de l’instruction ALTER INDEX .
Le columnstore pouvant être mis à jour insère d’abord de nouvelles données dans un rowgroup OPEN , qui est au format rowstore, et est également parfois appelé table delta. Une fois qu’un rowgroup ouvert est plein, son état passe à CLOSED. Un rowgroup fermé est compressé au format columnstore par le mover tuple et l’état passe à COMPRESSED. Le moteur de tuple est un processus en arrière-plan qui se réveille régulièrement et vérifie s'il existe des rowgroups fermés prêts à être compressés dans un rowgroup columnstore. Le moteur de tuple libère également les rowgroups dans lesquels chaque ligne a été supprimée. Les rowgroups désalloués sont marqués comme TOMBSTONE. Pour exécuter immédiatement le mover tuple, utilisez l’option REORGANIZE de l’instruction ALTER INDEX .
Lorsqu'un groupe de lignes columnstore est rempli, il est compressé, et cesse de recevoir de nouvelles lignes. Lorsque vous supprimez des lignes d'un groupe compressé, elles sont conservées mais sont marquées comme étant supprimées. Les mises à jour dans un groupe compressé sont implémentées comme une suppression du groupe compressé, et une insertion dans un groupe ouvert.
autorisations
Retourne des informations pour une table si l’utilisateur a VIEW DEFINITION
l’autorisation sur la table.
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
L’exemple suivant joint la table sys.column_store_row_groups à d’autres tables système pour retourner des informations sur des tables spécifiques. La colonne calculée PercentFull
est une estimation de l'efficacité du groupe de lignes. Pour rechercher des informations sur une seule table, supprimez les traits d’union de commentaire devant la clause WHERE et fournissez un nom de table.
SELECT i.object_id, object_name(i.object_id) AS TableName,
i.name AS IndexName, i.index_id, i.type_desc,
CSRowGroups.*,
100*(total_rows - ISNULL(deleted_rows,0))/total_rows AS PercentFull
FROM sys.indexes AS i
JOIN sys.column_store_row_groups AS CSRowGroups
ON i.object_id = CSRowGroups.object_id
AND i.index_id = CSRowGroups.index_id
--WHERE object_name(i.object_id) = '<table_name>'
ORDER BY object_name(i.object_id), i.name, row_group_id;
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
sys.columns (Transact-SQL)
sys.all_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)
Description des index columnstore
sys.column_store_dictionaries (Transact-SQL)
sys.column_store_segments (Transact-SQL)