Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applies to:
Azure Synapse Analytics
Analytics Platform System (PDW)
Contains a row for each column in a columnstore index.
Column name | Data type | Description |
---|---|---|
partition_id | bigint | Indicates the partition ID. Is unique within a database. |
hobt_id | bigint | ID of the heap or B-tree index (hobt) for the table that has this columnstore index. |
column_id | int | ID of the columnstore column. |
segment_id | int | ID of the column segment. For backward compatibility, the column name continues to be called segment_id even though this is the rowgroup ID. You can uniquely identify a segment using <hobt_id, partition_id, column_id>, <segment_id>. |
version | int | Version of the column segment format. |
encoding_type | int | Type of encoding used for that segment: 1 = VALUE_BASED - non-string/binary with no dictionary (similar to 4 with some internal variations) 2 = VALUE_HASH_BASED - non-string/binary column with common values in dictionary 3 = STRING_HASH_BASED - string/binary column with common values in dictionary 4 = STORE_BY_VALUE_BASED - non-string/binary with no dictionary 5 = STRING_STORE_BY_VALUE_BASED - string/binary with no dictionary All encodings take advantage of bit-packing and run-length encoding when possible. |
row_count | int | Number of rows in the row group. |
has_nulls | int | 1 if the column segment has null values. |
base_id | bigint | Base value ID if encoding type 1 is being used. If encoding type 1 is not being used, base_id is set to 1. |
magnitude | float | Magnitude if encoding type 1 is being used. If encoding type 1 is not being used, magnitude is set to 1. |
primary__dictionary_id | int | ID of primary dictionary. A non-zero value points to the local dictionary for this column in the current segment (i.e. the rowgroup). A value of -1 indicates that there is no local dictionary for this segment. |
secondary_dictionary_id | int | ID of secondary dictionary. A non-zero value points to the local dictionary for this column in the current segment (i.e. the rowgroup). A value of -1 indicates that there is no local dictionary for this segment. |
min_data_id | bigint | Minimum data ID in the column segment. |
max_data_id | bigint | Maximum data ID in the column segment. |
null_value | bigint | Value used to represent nulls. |
on_disk_size | bigint | Size of segment in bytes. |
pdw_node_id | int | Unique identifier of a Azure Synapse Analytics node. |
Examples: Azure Synapse Analytics and Analytics Platform System (PDW)
Join sys.pdw_nodes_column_store_segments with other system tables to determine the number of columnstore segments per logical table.
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 ;
Permissions
Requires VIEW SERVER STATE permission.
See Also
Azure Synapse Analytics and Parallel Data Warehouse Catalog Views
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_row_groups (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)