sys.column_store_segments (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate)

Restituisce una riga per ogni segmento di colonna in un indice columnstore. È presente un segmento di colonna per colonna per ogni rowgroup. Ad esempio, una tabella con 10 rowgroup e 34 colonne restituisce 340 righe.

Nome colonna Tipo di dati Descrizione
partition_id bigint Indica l'ID della partizione. Valore univoco all'interno di un database.
hobt_id bigint ID dell'heap o albero B (HoBT) per la tabella con questo indice columnstore.
column_id int ID della colonna columnstore.
segment_id int ID del rowgroup. Per compatibilità con le versioni precedenti, il nome della colonna continua a essere segment_id anche se si tratta dell'ID del rowgroup. È possibile identificare in modo univoco un segmento usando <hobt_id, partition_id, column_id>, <segment_id>.
version int Versione del formato del segmento di colonna.
encoding_type int Tipo di codifica usato per il segmento:

1 = VALUE_BASED - non stringa/binaria senza dizionario (simile a 4 con alcune varianti interne)

2 = VALUE_HASH_BASED - colonna non stringa/binaria con valori comuni nel dizionario

3 = STRING_HASH_BASED - colonna stringa/binaria con valori comuni nel dizionario

4 = STORE_BY_VALUE_BASED - non stringa/binaria senza dizionario

5 = STRING_STORE_BY_VALUE_BASED - stringa/binaria senza dizionario

Per altre informazioni, vedere la sezione Osservazioni.
row_count int Numero di righe nel gruppo di righe.
has_nulls int 1 se il segmento di colonna contiene valori Null.
base_id bigint ID del valore di base se viene usato il tipo di codifica 1. Se il tipo di codifica 1 non viene usato, base_id impostato su -1.
magnitude float Grandezza se viene usato il tipo di codifica 1. Se il tipo di codifica 1 non viene usato, la grandezza viene impostata su -1.
primary_dictionary_id int Il valore 0 rappresenta il dizionario globale. Il valore -1 indica che non è stato creato alcun dizionario globale per questa colonna.
secondary_dictionary_id int Un valore diverso da zero punta al dizionario locale per questa colonna nel segmento corrente,ad esempio il rowgroup. Il valore -1 indica che non esiste alcun dizionario locale per questo segmento.
min_data_id bigint ID dati minimo nel segmento di colonna.
max_data_id bigint ID dati massimo nel segmento di colonna.
null_value bigint Valore utilizzato per rappresentare i valori Null.
on_disk_size bigint Dimensioni del segmento in byte.

Commenti

Il tipo di codifica del segmento columnstore viene selezionato Motore di database da con l'obiettivo di ottenere il costo di archiviazione più basso, analizzando i dati del segmento. Se i dati sono principalmente distinti, usa Motore di database la codifica basata su valori. Se i dati non sono per lo più distinti, usa Motore di database la codifica basata su hash. La scelta tra la codifica basata su stringa e la codifica basata su valori è correlata al tipo di dati archiviati, sia dati stringa che dati binari. Tutte le codifiche sfruttano la codifica di bit packing e di lunghezza di esecuzione, quando possibile.

Autorizzazioni

Tutte le colonne richiedono almeno VIEW DEFINITION l'autorizzazione per la tabella. Le colonne seguenti restituiscono Null a meno che l'utente non abbia anche l'autorizzazione SELECT , base_id``magnitude``has_nulls, min_data_id, , max_data_ide .null_value

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempio

Nella query seguente vengono restituite le informazioni sui segmenti di un indice columnstore.

SELECT i.name, p.object_id, p.index_id, i.type_desc,   
    COUNT(*) AS number_of_segments  
FROM sys.column_store_segments AS s   
INNER JOIN sys.partitions AS p   
    ON s.hobt_id = p.hobt_id   
INNER JOIN sys.indexes AS i   
    ON p.object_id = i.object_id  
WHERE i.type = 5 OR i.type = 6  
GROUP BY i.name, p.object_id, p.index_id, i.type_desc ;  
GO  

Vedere anche

Viste del catalogo dell'oggetto (Transact-SQL)
Viste del catalogo (Transact-SQL)
Domande frequenti sull'esecuzione SQL Server catalogo di sistema
sys.columns (Transact-SQL)
sys.all_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)
Guida agli indici columnstore
sys.column_store_dictionaries (Transact-SQL)