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 2016 (13.x) a novější
azure SQL Database
azure SQL Managed Instance
Poskytuje aktuální informace na úrovni skupiny řádků o všech indexech columnstore v aktuální databázi.
Tím se rozšíří zobrazení katalogu sys.column_store_row_groups (Transact-SQL).
Název sloupce | Datový typ | Popis |
---|---|---|
object_id | int | ID podkladové tabulky. |
index_id | int | ID tohoto indexu columnstore v tabulce object_id. |
partition_number | int | ID oddílu tabulky, který obsahuje row_group_id. K připojení tohoto zobrazení dynamické správy k sys.partitions můžete použít partition_number. |
row_group_id | int | ID této skupiny řádků. U dělených tabulek je hodnota v rámci oddílu jedinečná. -1 pro ocas v paměti. |
delta_store_hobt_id | bigint | Hobt_id pro skupinu řádků v rozdílovém úložišti. Null, pokud skupina řádků není v rozdílovém úložišti. Hodnota NULL pro koncovou tabulku v paměti. |
stavu | tinyint | Číslo ID přidružené state_description. 0 = NEVIDITELNÉ 1 = OTEVŘÍT 2 = UZAVŘENO 3 = KOMPRIMOVÁNO 4 = NÁHROBEK COMPRESSED je jediný stav, který platí pro tabulky v paměti. |
state_desc | nvarchar(60) | Popis stavu skupiny řádků: 0 – NEVIDITELNÁ -A skupina řádků, která se sestavuje. Například: Skupina řádků ve columnstore je neviditelná, když se data komprimují. Po dokončení komprese přepínač metadat změní stav skupiny řádků columnstore z NEVIDITELNÉ na COMPRESSED a stav skupiny řádků deltastore z CLOSED na TOMBSTONE. 1 – OPEN – Skupina řádků deltastore, která přijímá nové řádky. Otevřená skupina řádků je stále ve formátu rowstore a nebyla komprimována do formátu columnstore. 2 – UZAVŘENO – skupina řádků v rozdílovém úložišti, která obsahuje maximální počet řádků, a čeká na proces přesunutí řazené kolekce členů do columnstore. 3 - COMPRESSED - Skupina řádků, která je komprimována pomocí komprese columnstore a uložena v columnstore. 4 - TOMBSTONE - Skupina řádků, která byla dříve v deltastore a už se nepoužívá. |
total_rows | bigint | Počet řádků fyzicky uložených ve skupině řádků Pro komprimované skupiny řádků. Obsahuje řádky označené jako odstraněné. |
deleted_rows | bigint | Počet řádků fyzicky uložených ve komprimované skupině řádků, které jsou označené k odstranění. 0 pro skupiny řádků, které jsou v rozdílovém úložišti. |
size_in_bytes | bigint | Kombinovaná velikost všech stránek v této skupině řádků v bajtech Tato velikost nezahrnuje velikost potřebnou k ukládání metadat ani sdílených slovníků. |
trim_reason | tinyint | Důvod, proč se skupina řádků COMPRESSED aktivovala tak, aby měla menší než maximální počet řádků. 0 – UNKNOWN_UPGRADED_FROM_PREVIOUS_VERSION 1 – NO_TRIM 2. HROMADNÉ NAČÍTÁNÍ 3 - REORG 4 – DICTIONARY_SIZE 5 – MEMORY_LIMITATION 6 – RESIDUAL_ROW_GROUP 7 – STATS_MISMATCH 8 – PŘELITÍ 9 – AUTO_MERGE |
trim_reason_desc | nvarchar(60) | Popis trim_reason. 0 – UNKNOWN_UPGRADED_FROM_PREVIOUS_VERSION: Došlo při upgradu z předchozí verze SQL Serveru. 1 – NO_TRIM: Skupina řádků nebyla oříznuta. Skupina řádků byla komprimována s maximálním počtem 1 048 576 řádků. Počet řádků může být menší, pokud se po zavření rozdílové skupiny řádků odstranila podmnožina řádků. 2 – BULKLOAD: Velikost dávky hromadného načtení omezila počet řádků. 3 - REORG: Vynucená komprese jako součást příkazu REORG. 4 – DICTIONARY_SIZE: Velikost slovníku se zvětšila příliš velká, aby se komprimovala všechny řádky dohromady. 5 – MEMORY_LIMITATION: Nedostatek dostupné paměti pro komprimaci všech řádků. 6 – RESIDUAL_ROW_GROUP: Uzavřeno jako součást poslední skupiny řádků s řádky < 1 milion během operace sestavení indexu. Poznámka: Sestavení oddílu s více jádry může vést k více než jednomu oříznutí tohoto typu. 7 – STATS_MISMATCH: Pouze pro columnstore v tabulce v paměti. Pokud statistiky nesprávně označí >= 1 milion kvalifikovaných řádků v chvostu, ale zjistili jsme méně, bude mít komprimovaná skupina řádků < 1 milion řádků. 8 – PŘELITÍ: Pouze pro columnstore v tabulce v paměti. Pokud chvost obsahuje > 1 milion kvalifikovaných řádků, zkomprimují se poslední zbývající řádky dávky, pokud je počet mezi 100 tisíci a 1 miliony. 9 – AUTO_MERGE: Operace sloučení řazené kolekce členů spuštěná na pozadí konsolidovala jednu nebo více skupin řádků do této skupiny řádků. |
transition_to_compressed_state | tinyint | Ukazuje, jak se tato skupina řádků přesunula z deltastore do komprimovaného stavu ve columnstore. 1– NOT_APPLICABLE 2 – INDEX_BUILD 3 – TUPLE_MOVER 4 – REORG_NORMAL 5 – REORG_FORCED 6. HROMADNÉ NAČÍTÁNÍ 7. SLOUČENÍ |
transition_to_compressed_state_desc | nvarchar(60) | 1 – NOT_APPLICABLE – operace se nevztahuje na deltastore. Nebo se před upgradem na SQL Server 2016 (13.x) zkomprimovala skupina řádků. V takovém případě se historie nezachová. 2 – INDEX_BUILD – Index vytvoří nebo index znovu sestaví komprimovanou skupinu řádků. 3 – TUPLE_MOVER – přesouvání řazené kolekce členů spuštěné na pozadí komprimovaly skupinu řádků. Přesunutí řazené kolekce členů probíhá po změně stavu skupiny řádků z OPEN na CLOSED. 4 - REORG_NORMAL - Reorganizační operace, ALTER INDEX ... REORG, přesunula uzavřenou skupinu řádků z deltastore do columnstore. K tomu došlo před přesunutím řazené kolekce členů čas přesunout skupinu řádků. 5 – REORG_FORCED – tato skupina řádků byla otevřena v deltastore a byla vynucena do columnstore předtím, než měla celý počet řádků. 6 – BULKLOAD – Operace hromadného načtení komprimovala skupinu řádků přímo bez použití deltastore. 7 – SLOUČENÍ – Slučovací operace konsolidovala jednu nebo více skupin řádků do této skupiny řádků a poté provedla kompresi columnstore. |
has_vertipaq_optimization | trochu | Optimalizace VertiPaq zlepšuje kompresi columnstore tím, že přeuspořádá pořadí řádků ve skupině řádků, aby se dosáhlo vyšší komprese. K této optimalizaci dochází ve většině případů automaticky. Existují dva případy, kdy se nepoužívá optimalizace VertiPaq: a. když se rozdílová skupina řádků přesune do columnstore a v indexu columnstore existuje jeden nebo více neclusterovaných indexů – v tomto případě se optimalizace VertiPaq přeskočí, aby se minimalizovaly změny indexu mapování; b) pro indexy columnstore v tabulkách optimalizovaných pro paměť. 0 = Ne 1 = Ano |
generování | bigint | Generování skupiny řádků přidružené k této skupině řádků |
created_time | datetime2 | Hodinový čas pro vytvoření této skupiny řádků NULL – pro index columnstore v tabulce v paměti. |
closed_time | datetime2 | Doba, kdy byla tato skupina řádků uzavřena. NULL – pro index columnstore v tabulce v paměti. |
Výsledky
Vrátí jeden řádek pro každou skupinu řádků v aktuální databázi.
Dovolení
Vyžaduje oprávnění CONTROL
pro tabulku a VIEW DATABASE STATE
oprávnění k databázi.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU DATABÁZE pro databázi.
Příklady
A. Výpočet fragmentace, abyste se rozhodli, kdy znovu uspořádat nebo znovu sestavit index columnstore.
U indexů columnstore je procento odstraněných řádků dobrou mírou fragmentace v rámci skupiny řádků. Pokud je fragmentace 20% nebo více, odeberte odstraněné řádky. Další příklady najdete v tématu Změna uspořádání a opětovného sestavení indexů.
Tento příklad spojí sys.dm_db_column_store_row_group_physical_stats s jinými systémovými tabulkami a pak vypočítá Fragmentation
sloupec jako odhad efektivity jednotlivých skupin řádků v aktuální databázi. Pokud chcete najít informace o jedné tabulce, odeberte spojovníky komentářů před klauzulí WHERE a zadejte název tabulky.
SELECT i.object_id,
object_name(i.object_id) AS TableName,
i.name AS IndexName,
i.index_id,
i.type_desc,
CSRowGroups.*,
100*(ISNULL(deleted_rows,0))/NULLIF(total_rows,0) AS 'Fragmentation'
FROM sys.indexes AS i
JOIN sys.dm_db_column_store_row_group_physical_stats AS CSRowGroups
ON i.object_id = CSRowGroups.object_id AND i.index_id = CSRowGroups.index_id
-- WHERE object_name(i.object_id) = 'table_name'
ORDER BY object_name(i.object_id), i.name, row_group_id;
Viz také
zobrazení katalogu objektů (Transact-SQL)
zobrazení katalogu (Transact-SQL)
Architektura indexu Columnstore
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)
sys.column_store_segments (Transact-SQL)