Sdílet prostřednictvím


sys.pdw_nodes_column_store_row_groups (Transact-SQL)

platí pro: Azure Synapse AnalyticsAnalytics Platform System (PDW)

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_segments (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)