sys.pdw_nodes_column_store_segments (Transact-SQL)
S’applique à: Azure Synapse Analytics Analytics Platform System (PDW)
Contient une ligne pour chaque colonne dans un index columnstore.
Nom de la colonne | Type de données | Description |
---|---|---|
partition_id | bigint | Indique l'ID de partition. Unique dans une base de données. |
hobt_id | bigint | ID du segment ou de l'index d'arbre B (B-tree) pour la table ayant cet index columnstore. |
column_id | int | ID de la colonne columnstore. |
segment_id | int | Retourne le segment de la colonne. Pour une compatibilité descendante, le nom de colonne continue d’être appelé segment_id même s’il s’agit de l’ID de rowgroup. Vous pouvez identifier de manière unique un segment à l’aide <de hobt_id, partition_id, column_id, <segment_id>>. |
version | int | Version du format de segment de colonne. |
encoding_type | int | Type d’encodage utilisé pour ce segment : 1 = VALUE_BASED - non-string/binary sans dictionnaire (similaire à 4 avec certaines variantes internes) 2 = VALUE_HASH_BASED - colonne non-string/binaire avec des valeurs courantes dans le dictionnaire 3 = STRING_HASH_BASED - colonne chaîne/binaire avec des valeurs communes dans le dictionnaire 4 = STORE_BY_VALUE_BASED - non-string/binary sans dictionnaire 5 = STRING_STORE_BY_VALUE_BASED - chaîne/binaire sans dictionnaire Tous les encodages tirent parti de l’empaquetage de bits et de l’encodage de longueur d’exécution lorsque cela est possible. |
row_count | int | Nombre de lignes dans le groupe de lignes. |
has_nulls | int | 1 si le segment de colonne a des valeurs NULL. |
base_id | bigint | ID de valeur de base si le type d’encodage 1 est utilisé. Si le type d’encodage 1 n’est pas utilisé, base_id est défini sur 1. |
magnitude | float | Magnitude si le type d’encodage 1 est utilisé. Si le type d’encodage 1 n’est pas utilisé, la magnitude est définie sur 1. |
primary__dictionary_id | int | ID du dictionnaire principal. Une valeur non nulle pointe vers le dictionnaire local pour cette colonne dans le segment actuel (c’est-à-dire le rowgroup). La valeur -1 indique qu’il n’existe aucun dictionnaire local pour ce segment. |
secondary_dictionary_id | int | ID du dictionnaire secondaire. Une valeur non nulle pointe vers le dictionnaire local pour cette colonne dans le segment actuel (c’est-à-dire le rowgroup). La valeur -1 indique qu’il n’existe aucun dictionnaire local pour ce segment. |
min_data_id | bigint | ID de données minimal dans le segment de colonne. |
max_data_id | bigint | ID de données maximal dans le segment de colonne. |
null_value | bigint | Valeur utilisée pour représenter les valeurs NULL. |
on_disk_size | bigint | Taille de segment en octets. |
pdw_node_id | int | Identificateur unique d’un nœud Azure Synapse Analytics. |
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
Joignez sys.pdw_nodes_column_store_segments avec d’autres tables système pour déterminer le nombre de segments columnstore par table logique.
SELECT sm.name as schema_nm
, tb.name as table_nm
, nc.name as col_nm
, nc.column_id
, COUNT(*) as segment_count
FROM sys.[schemas] sm
JOIN sys.[tables] tb ON sm.[schema_id] = tb.[schema_id]
JOIN sys.[pdw_table_mappings] mp ON tb.[object_id] = mp.[object_id]
JOIN sys.[pdw_nodes_tables] nt ON nt.[name] = mp.[physical_name]
JOIN sys.[pdw_nodes_partitions] np ON np.[object_id] = nt.[object_id]
AND np.[pdw_node_id] = nt.[pdw_node_id]
AND np.[distribution_id] = nt.[distribution_id]
JOIN sys.[pdw_nodes_columns] nc ON np.[object_id] = nc.[object_id]
AND np.[pdw_node_id] = nc.[pdw_node_id]
AND np.[distribution_id] = nc.[distribution_id]
JOIN sys.[pdw_nodes_column_store_segments] rg ON rg.[partition_id] = np.[partition_id]
AND rg.[pdw_node_id] = np.[pdw_node_id]
AND rg.[distribution_id] = np.[distribution_id]
AND rg.[column_id] = nc.[column_id]
GROUP BY sm.name
, tb.name
, nc.name
, nc.column_id
ORDER BY table_nm
, nc.column_id
, sm.name ;
autorisations
Nécessite l’autorisation VIEW SERVER STATE.
Voir aussi
Vues de catalogue Azure Synapse Analytics et Parallel Data Warehouse
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_row_groups (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)