sys.pdw_nodes_column_store_row_groups (Transact-SQL)
Poskytuje clusterované informace o indexu columnstore pro jednotlivé segmenty, které správci pomůžou při rozhodování o správě systému ve službě Azure Synapse Analytics. sys.pdw_nodes_column_store_row_groups obsahuje sloupec pro celkový počet fyzicky uložených řádků (včetně řádků označených jako odstraněných) a sloupce pro počet řádků označených jako odstraněné. Pomocí sys.pdw_nodes_column_store_row_groups určete, které skupiny řádků mají vysoké procento odstraněných řádků a které se mají znovu vytvořit.
Název sloupce | Datový typ | Popis |
---|---|---|
object_id | int | ID podkladové tabulky. Toto je fyzická tabulka na výpočetním uzlu, nikoli object_id pro logickou tabulku na řídicím uzlu. Například object_id neodpovídá object_id v sys.tables. Pokud se chcete spojit s sys.tables, použijte sys.pdw_index_mappings. |
index_id | int | ID clusterovaného indexu columnstore v tabulce object_id. |
partition_number | int | ID oddílu tabulky, který obsahuje skupinu řádků 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ů. To je v rámci oddílu jedinečné. |
delta_store_hobt_id | bigint | Hobt_id pro rozdílové skupiny řádků nebo null, pokud typ skupiny řádků není rozdílový. Skupina řádků delta je skupina řádků pro čtení a zápis, která přijímá nové záznamy. Skupina řádků delta má stav OPEN. Skupina řádků delta je stále ve formátu rowstore a nebyla komprimována do formátu columnstore. |
stavu |
tinyint | Číslo ID přidružené k state_description 1 = OTEVŘÍT 2 = UZAVŘENO 3 = KOMPRIMOVÁNO |
state_description | nvarchar(60) | Popis trvalého stavu skupiny řádků: OPEN – Skupina řádků pro čtení a zápis, která přijímá nové záznamy. Otevřená skupina řádků je stále ve formátu rowstore a nebyla komprimována do formátu columnstore. CLOSED – skupina řádků, která byla vyplněna, ale ještě není komprimována procesem přesunutí řazené kolekce členů. COMPRESSED – skupina řádků, která je vyplněná a komprimovaná. |
total_rows | bigint | Celkový počet řádků fyzicky uložených ve skupině řádků Některé byly pravděpodobně odstraněny, ale jsou stále uložené. Maximální počet řádků ve skupině řádků je 1 048 576 (šestnáctkový FFFFF). |
deleted_rows | bigint | Počet řádků fyzicky uložených ve skupině řádků, které jsou označené k odstranění. Vždy 0 pro skupiny řádků DELTA. |
size_in_bytes | int | 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ů. |
pdw_node_id | int | Jedinečné ID uzlu Azure Synapse Analytics |
distribution_id | int | Jedinečné ID distribuce. |
Poznámky
Vrátí jeden řádek pro každou skupinu řádků columnstore pro každou tabulku, která má clusterovaný nebo neclusterovaný index columnstore.
Pomocí sys.pdw_nodes_column_store_row_groups určete počet řádků zahrnutých ve skupině řádků a velikost skupiny řádků.
Když se počet odstraněných řádků ve skupině řádků zvětšuje na velké procento řádků, tabulka bude méně efektivní. Znovu sestavte index columnstore, abyste zmenšili velikost tabulky a snížili počet vstupně-výstupních operací disku potřebných ke čtení tabulky. K opětovnému sestavení indexu columnstore použijte možnost REBUILD příkazu ALTER INDEX.
Aktualizovatelné columnstore nejprve vloží nová data do OPEN skupiny řádků, která je ve formátu rowstore a někdy se také označuje jako rozdílová tabulka. Jakmile je otevřená skupina řádků plná, její stav se změní na UZAVŘENO. Uzavřená skupina řádků je komprimována do formátu columnstore pomocí moveru řazené kolekce členů a stav se změní na COMPRESSED. Přesunutí řazené kolekce členů je proces na pozadí, který se pravidelně probudí a zkontroluje, jestli existují nějaké uzavřené skupiny řádků, které jsou připravené ke komprimaci do skupiny řádků columnstore. Přesun řazené kolekce členů také zruší přidělení všech skupin řádků, ve kterých byl odstraněn každý řádek. Uvolněné skupiny řádků jsou označené jako VYŘAZENO. K okamžitému spuštění moveru řazené kolekce členů použijte možnost REORGANIZE příkazu ALTER INDEX.
Když se skupina řádků columnstore vyplní, zkomprimuje se a přestane přijímat nové řádky. Když se řádky odstraní z komprimované skupiny, zůstanou, ale jsou označené jako odstraněné. Aktualizace komprimované skupiny se implementují jako odstranění z komprimované skupiny a vložení do otevřené skupiny.
Dovolení
Vyžaduje oprávnění ZOBRAZIT STAV SERVERU.
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
Následující příklad spojí tabulku sys.pdw_nodes_column_store_row_groups s jinými systémových tabulek a vrátí informace o konkrétních tabulkách. Počítaný PercentFull
sloupec představuje odhad efektivity skupiny řádků. Pokud chcete najít informace o jedné tabulce, odeberte před klauzulí WHERE pomlčky komentářů a zadejte název tabulky.
SELECT IndexMap.object_id,
object_name(IndexMap.object_id) AS LogicalTableName,
i.name AS LogicalIndexName, IndexMap.index_id, NI.type_desc,
IndexMap.physical_name AS PhyIndexNameFromIMap,
CSRowGroups.*,
100*(ISNULL(deleted_rows,0))/total_rows AS PercentDeletedRows
FROM sys.tables AS t
JOIN sys.indexes AS i
ON t.object_id = i.object_id
JOIN sys.pdw_index_mappings AS IndexMap
ON i.object_id = IndexMap.object_id
AND i.index_id = IndexMap.index_id
JOIN sys.pdw_nodes_indexes AS NI
ON IndexMap.physical_name = NI.name
AND IndexMap.index_id = NI.index_id
JOIN sys.pdw_nodes_column_store_row_groups AS CSRowGroups
ON CSRowGroups.object_id = NI.object_id
AND CSRowGroups.pdw_node_id = NI.pdw_node_id
AND CSRowGroups.distribution_id = NI.distribution_id
AND CSRowGroups.index_id = NI.index_id
WHERE total_rows > 0
--WHERE t.name = '<table_name>'
ORDER BY object_name(i.object_id), i.name, IndexMap.physical_name, pdw_node_id;
Následující příklad služby Azure Synapse Analytics spočítá řádky na oddíl pro úložiště clusterovaných sloupců a také počet řádků ve skupinách Open, Closed nebo Compressed Row:
SELECT
s.name AS [Schema Name]
,t.name AS [Table Name]
,rg.partition_number AS [Partition Number]
,SUM(rg.total_rows) AS [Total Rows]
,SUM(CASE WHEN rg.State = 1 THEN rg.Total_rows Else 0 END) AS [Rows in OPEN Row Groups]
,SUM(CASE WHEN rg.State = 2 THEN rg.Total_Rows ELSE 0 END) AS [Rows in Closed Row Groups]
,SUM(CASE WHEN rg.State = 3 THEN rg.Total_Rows ELSE 0 END) AS [Rows in COMPRESSED Row Groups]
FROM sys.pdw_nodes_column_store_row_groups rg
JOIN sys.pdw_nodes_tables pt
ON rg.object_id = pt.object_id
AND rg.pdw_node_id = pt.pdw_node_id
AND pt.distribution_id = rg.distribution_id
JOIN sys.pdw_table_mappings tm
ON pt.name = tm.physical_name
INNER JOIN sys.tables t
ON tm.object_id = t.object_id
INNER JOIN sys.schemas s
ON t.schema_id = s.schema_id
GROUP BY s.name, t.name, rg.partition_number
ORDER BY 1, 2
Viz také
zobrazení katalogu Azure Synapse Analytics a paralelního katalogu datových skladů
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)