Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar en rad för varje kolumnsegment i ett kolumnlagreindex. Det finns ett kolumnsegment per kolumn per radgrupp. Till exempel har ett columnstore-index med 10 radgrupper och 34 kolumner 340 rader i den här vyn.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
partition_id |
bigint | Indikerar partitions-ID:t. Är unik i en databas. |
hobt_id |
bigint | ID för heap- eller B-trädsindexet (HoBT) för tabellen som har detta kolumnlagringsindex. |
column_id |
int | ID för kolumnen columnstore. |
segment_id |
int | ID för radgruppen. För bakåtkompatibilitet fortsätter kolumnnamnet att kallas segment_id även om detta är radgrupps-ID:t. Du kan unikt identifiera ett segment med hjälp av <hobt_id, partition_id, column_id, segment_id>. |
version |
int | Version av kolumnsegmentformatet. |
encoding_type |
int | Typ av kodning som används för det segmentet: 1 = VALUE_BASED - icke-sträng/binär utan ordbok (liknande 4 med vissa interna variationer) 2 = VALUE_HASH_BASED - icke-sträng/binär kolumn med gemensamma värden i ordboken 3 = STRING_HASH_BASED - sträng/binär kolumn med gemensamma värden i ordboken 4 = STORE_BY_VALUE_BASED - icke-sträng/binär utan ordbok 5 = STRING_STORE_BY_VALUE_BASED - sträng/binär utan ordbok Mer information finns i avsnittet Kommentarer. |
row_count |
int | Antal rader i radgruppen. |
has_nulls |
int | 1 om kolumnsegmentet har NULLs. |
base_id |
bigint | Basvärde-ID om kodningstyp 1 används. Om kodningstyp 1 inte används base_id anges till -1. |
magnitude |
float | Magnitud om kodningstyp 1 används. Om kodningstyp 1 inte används magnitude anges till -1. |
primary_dictionary_id |
int | Värdet 0 representerar den globala ordboken. Värdet -1 indikerar att det inte finns någon global ordbok skapad för denna kolumn. |
secondary_dictionary_id |
int | Ett icke-noll värde pekar på den lokala ordboken för denna kolumn i det aktuella segmentet (till exempel radgruppen). Värdet -1 indikerar att det inte finns någon lokal ordbok för detta segment. |
min_data_id |
bigint | Endast för internt bruk. |
max_data_id |
bigint | Endast för internt bruk. |
null_value |
bigint | Värde som används för att representera nuller. |
on_disk_size |
bigint | Segmentets storlek i bytes. |
collation_id |
int | Aktuell samling när segmentet skapades. Mappar till ett internt ID. Endast för internt bruk. gäller för: SQL Server 2022 (16.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance |
min_deep_data |
varbinär(18) | Används för segmenteliminering. 1 Endast för internt bruk. gäller för: SQL Server 2022 (16.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance |
max_deep_data |
varbinär(18) | Används för segmenteliminering. 1 Endast för internt bruk. gäller för: SQL Server 2022 (16.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance |
1 När du har uppgraderat till en version av databasmotorn som stöder minsta/högsta segmenteliminering för en utökad uppsättning datatyper (introducerades i SQL Server 2022 (16.x)), min_deep_data och max_deep_data är NULL tills kolumnlagringsindexet återskapas med hjälp av en eller CREATE INDEX ... WITH (DROP_EXISTING = ON) -ALTER INDEX ... REBUILDinstruktion.
Anmärkningar
Kolumnlagringssegmentets kodningstyp väljs av databasmotorn genom att segmentdata analyseras med målet att uppnå den lägsta lagringskostnaden. Om data mestadels är åtskilda använder databasmotorn värdebaserad kodning. Om data mestadels inte är åtskilda använder databasmotorn hashbaserad kodning. Valet mellan strängbaserad och värdebaserad kodning är relaterat till vilken typ av data som lagras, vare sig det gäller strängdata eller binär data. Alla kodningar utnyttjar bitpackning och run-length-kodning när det är möjligt.
Eliminering av kolumnlagringssegment gäller för datatyper för numeriska data, datum och tid och datatypen datetimeoffset med skala mindre än eller lika med två. Från och med SQL Server 2022 (16.x) expanderas funktionerna för segmenteliminering till sträng- och binära datatyper, datatypen uniqueidentifier och datatypen datetimeoffset för skalning större än två. Segmenteliminering gäller inte för LOB-datatyper som varchar(max), nvarchar(max)och varbinary(max). Mer information finns i Nyheter i kolumnlagringsindex.
Permissions
Behörigheten VIEW DEFINITION för vyn krävs. Följande kolumner returneras NULL såvida inte användaren också har behörigheten SELECT : has_nulls, base_id, magnitude, min_data_id, max_data_idoch null_value.
Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.
Examples
Följande fråga ger information om segment i ett kolumnlagreindex.
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;
Relaterat innehåll
- En guide för columnstore-index
- Prestandajustering med ordnade columnstore-index
- objektkatalogvyer (Transact-SQL)
- katalogvyer (Transact-SQL)
- frågor och svar om SQL Server System Catalog
- sys.columns (Transact-SQL)
- sys.all_columns (Transact-SQL)
- sys.computed_columns (Transact-SQL)
- sys.column_store_dictionaries (Transact-SQL)