Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací jeden řádek pro každý sloupec v indexu columnstore. Na sloupec a na skupinu řádků je jeden sloupec. Například index columnstore s 10 skupinami řádků a 34 sloupci má v tomto zobrazení 340 řádků.
| Název sloupce | Datový typ | Description |
|---|---|---|
partition_id |
bigint | Označuje ID oddílu. Je jedinečný v rámci databáze. |
hobt_id |
bigint | ID haldy nebo B-stromového indexu (HoBT) pro tabulku, která má tento index columnstore. |
column_id |
int | ID sloupce columnstore. |
segment_id |
int | ID skupiny řádků. Pro zpětnou kompatibilitu se název sloupce nadále nazývá segment_id, i když jde o ID řádkové skupiny. Segment můžete jednoznačně identifikovat pomocí <hobt_id, partition_id, column_id, segment_id>. |
version |
int | Verze formátu sloupcových segmentů. |
encoding_type |
int | Typ kódování použitý pro tento segment: 1 = VALUE_BASED – ne-řetězcové/binární bez slovníku (podobně jako 4 s některými vnitřními variacemi) 2 = VALUE_HASH_BASED - sloupec bez řetězce/binárních čísel s běžnými hodnotami ve slovníku 3 = STRING_HASH_BASED - sloupec/řetězec/binární sloupec s běžnými hodnotami ve slovníku 4 = STORE_BY_VALUE_BASED - ne-řetězcové/binární bez slovníku 5 = STRING_STORE_BY_VALUE_BASED – řetězce/binární soubory bez slovníku Další informace najdete v části Poznámky. |
row_count |
int | Počet řádků ve skupině řádků. |
has_nulls |
int | 1, pokud má segment sloupce hodnoty NULLs. |
base_id |
bigint | Základní hodnota ID, pokud se používá kódovací typ 1. Pokud se typ kódování 1 nepoužívá, base_id nastaví se na hodnotu -1. |
magnitude |
float | Velikost, pokud se používá kódování typu 1. Pokud se typ kódování 1 nepoužívá, magnitude nastaví se na hodnotu -1. |
primary_dictionary_id |
int | Hodnota 0 představuje globální slovník. Hodnota -1 znamená, že pro tento sloupec není vytvořen žádný globální slovník. |
secondary_dictionary_id |
int | Nenulová hodnota ukazuje na lokální slovník pro tento sloupec v aktuálním segmentu (například na skupinu řádků). Hodnota -1 znamená, že pro tento segment neexistuje místní slovník. |
min_data_id |
bigint | Pouze pro interní použití. |
max_data_id |
bigint | Pouze pro interní použití. |
null_value |
bigint | Hodnota používaná k reprezentaci nul. |
on_disk_size |
bigint | Velikost segmentu v bajtech. |
collation_id |
int | Aktuální kolekce při vzniku segmentu. Mapuje se na interní ID. Pouze pro interní použití. platí pro: SQL Server 2022 (16.x) a novější verze, Azure SQL Database a Azure SQL Managed Instance |
min_deep_data |
varbinary(18) | Používá se pro eliminaci segmentů. 1 Pouze pro vnitřní použití. platí pro: SQL Server 2022 (16.x) a novější verze, Azure SQL Database a Azure SQL Managed Instance |
max_deep_data |
varbinary(18) | Používá se pro eliminaci segmentů. 1 Pouze pro vnitřní použití. platí pro: SQL Server 2022 (16.x) a novější verze, Azure SQL Database a Azure SQL Managed Instance |
1 Po upgradu na verzi databázového stroje, která podporuje minimální/maximální vyloučení segmentů pro rozšířenou sadu datových typů (zavedených v SQL Serveru 2022 (16.x)), min_deep_data a max_deep_data jsou NULL až do vytvoření indexu columnstore pomocí ALTER INDEX ... REBUILD nebo CREATE INDEX ... WITH (DROP_EXISTING = ON) příkazu.
Poznámky
Typ kódování segmentu columnstore vybere databázový stroj analýzou dat segmentů s cílem dosáhnout nejnižších nákladů na úložiště. Pokud jsou data většinou odlišná, databázový engine používá kódování založené na hodnotách. Pokud data většinou nejsou odlišná, databázový engine používá kódování založené na hashu. Volba mezi kódováním založeným na řetězci a kódováním založeným na hodnotách souvisí s typem uložených dat, ať už řetězcovými nebo binárními daty. Všechna kódování využívají bitové balení a kódování délky běhu, pokud je to možné.
Odstranění segmentu columnstore se vztahuje na číselné datové typy, datum a čas a datový typ datetimeoffset s měřítkem menší nebo rovnou dvěma. Počínaje SQL Serverem 2022 (16.x) se možnosti odstranění segmentů rozšiřují na řetězcové a binární datové typy, datový typ uniqueidentifier a datový typ datetimeoffset pro škálování větší než dvě. Odstranění segmentů se nevztahuje na datové typy LOB, jako jsou varchar(max), nvarchar(max) a varbinary(max). Další informace najdete v tématu Co je nového v indexech columnstore.
Povolení
Je vyžadováno VIEW DEFINITION oprávnění k zobrazení. Následující sloupce se vrátíNULL, pokud uživatel nemá SELECT oprávnění: has_nulls, base_id, magnitude, min_data_idmax_data_ida null_value.
Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.
Examples
Následující dotaz vrací informace o segmentech indexu 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;
Související obsah
- Průvodce indexy columnstore
- Ladění výkonu s seřazenými indexy columnstore
- zobrazení katalogu objektů (Transact-SQL)
- zobrazení katalogu (Transact-SQL)
- dotazování na nejčastější dotazy k katalogu systému SQL Server
- sys.columns (Transact-SQL)
- sys.all_columns (Transact-SQL)
- sys.computed_columns (Transact-SQL)
- sys.column_store_dictionaries (Transact-SQL)