Udostępnij za pośrednictwem


sys.pdw_nodes_column_store_row_groups (Transact-SQL)

Dotyczy:azure Synapse AnalyticsAnalytics Platform System (PDW)

Udostępnia klastrowane informacje o indeksie magazynu kolumn dla poszczególnych segmentów, aby ułatwić administratorowi podejmowanie decyzji dotyczących zarządzania systemem w usłudze Azure Synapse Analytics. sys.pdw_nodes_column_store_row_groups zawiera kolumnę dla całkowitej liczby wierszy przechowywanych fizycznie (w tym oznaczonych jako usunięte) i kolumny dla liczby wierszy oznaczonych jako usunięte. Użyj sys.pdw_nodes_column_store_row_groups, aby określić, które grupy wierszy mają wysoki procent usuniętych wierszy i powinny zostać ponownie skompilowane.

Nazwa kolumny Typ danych Opis
object_id Identyfikator tabeli bazowej. Jest to tabela fizyczna w węźle Obliczenia, a nie object_id dla tabeli logicznej w węźle Kontrolny. Na przykład object_id nie jest zgodna z object_id w pliku sys.tables.

Aby dołączyć do pliku sys.tables, użyj sys.pdw_index_mappings.
index_id Identyfikator klastrowanego indeksu magazynu kolumn w tabeli object_id.
partition_number Identyfikator partycji tabeli, która zawiera grupę wierszy row_group_id. Możesz użyć partition_number, aby dołączyć ten dynamiczny widok zarządzania do folderu sys.partitions.
row_group_id Identyfikator tej grupy wierszy. Jest to unikatowe w obrębie partycji.
delta_store_hobt_id bigint Hobt_id dla grup wierszy różnicowych lub NULL, jeśli typ grupy wierszy nie jest różnicowy. Grupa wierszy różnicowych to grupa wierszy odczytu/zapisu, która akceptuje nowe rekordy. Grupa wierszy różnicowych ma stan OPEN. Grupa wierszy różnicowych jest nadal w formacie magazynu wierszy i nie została skompresowana do formatu magazynu kolumn.
stanu tinyint Identyfikator skojarzony z state_description.

1 = OTWÓRZ

2 = ZAMKNIĘTE

3 = SKOMPRESOWANE
state_description nvarchar(60) Opis stanu trwałego grupy wierszy:

OPEN — grupa wierszy odczytu/zapisu akceptująca nowe rekordy. Otwarta grupa wierszy jest nadal w formacie magazynu wierszy i nie została skompresowana do formatu magazynu kolumn.

CLOSED — grupa wierszy, która została wypełniona, ale nie jest jeszcze skompresowana przez proces przełączania krotki.

SKOMPRESOWANE — grupa wierszy, która została wypełniona i skompresowana.
total_rows bigint Łączna liczba wierszy przechowywanych fizycznie w grupie wierszy. Niektóre mogły zostać usunięte, ale nadal są przechowywane. Maksymalna liczba wierszy w grupie wierszy to 1048 576 (szesnastkowa FFFFF).
deleted_rows bigint Liczba wierszy przechowywanych fizycznie w grupie wierszy oznaczonych do usunięcia.

Zawsze 0 dla grup wierszy delty.
size_in_bytes Łączny rozmiar w bajtach wszystkich stron w tej grupie wierszy. Ten rozmiar nie zawiera rozmiaru wymaganego do przechowywania metadanych ani udostępnionych słowników.
pdw_node_id Unikatowy identyfikator węzła usługi Azure Synapse Analytics.
distribution_id Unikatowy identyfikator dystrybucji.

Uwagi

Zwraca jeden wiersz dla każdej grupy wierszy magazynu kolumn dla każdej tabeli z klastrowanym lub nieklastrowanym indeksem magazynu kolumn.

Użyj sys.pdw_nodes_column_store_row_groups, aby określić liczbę wierszy uwzględnionych w grupie wierszy i rozmiar grupy wierszy.

Gdy liczba usuniętych wierszy w grupie wierszy zwiększa się do dużej wartości procentowej całkowitej liczby wierszy, tabela staje się mniej wydajna. Skompiluj indeks magazynu kolumn, aby zmniejszyć rozmiar tabeli, zmniejszając liczbę operacji we/wy dysku wymaganych do odczytania tabeli. Aby ponownie skompilować indeks magazynu kolumn, użyj opcji REBUILD instrukcji ALTER INDEX.

Aktualizowalny magazyn kolumn najpierw wstawia nowe dane do open rowgroup, która jest w formacie rowstore, a czasami jest nazywana tabelą różnicową. Po zapełnieniu otwartej grupy wierszy jego stan zmieni się na ZAMKNIĘTE. Zamknięta grupa wierszy jest kompresowana do formatu magazynu kolumn przez krotkę, a stan zmienia się na SKOMPRESOWANE. Krotka jest procesem w tle, który okresowo budzi się i sprawdza, czy istnieją zamknięte grupy wierszy, które są gotowe do skompresowania do grupy wierszy magazynu kolumn. Mover krotki powoduje również cofnięcie przydziału wszystkich grup wierszy, w których każdy wiersz został usunięty. Cofnięto przydział grup wierszy są oznaczone jako WYCOFANE. Aby natychmiast uruchomić krotkę, użyj opcji REORGANIZE instrukcji ALTER INDEX.

Gdy grupa wierszy magazynu kolumn została wypełniona, jest kompresowana i przestaje akceptować nowe wiersze. Gdy wiersze są usuwane z skompresowanej grupy, pozostają, ale są oznaczone jako usunięte. Aktualizacje skompresowanej grupy są implementowane jako usuwanie z skompresowanej grupy i wstawianie do otwartej grupy.

Uprawnienia

Wymaga uprawnień VIEW SERVER STATE.

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład łączy tabelę sys.pdw_nodes_column_store_row_groups z innymi tabelami systemowymi w celu zwrócenia informacji o określonych tabelach. Kolumna obliczeniowa PercentFull to oszacowanie wydajności grupy wierszy. Aby znaleźć informacje na temat pojedynczej tabeli, usuń łączniki komentarzy przed klauzulą WHERE i podaj nazwę tabeli.

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;  

Poniższy przykład usługi Azure Synapse Analytics zlicza wiersze na partycję dla magazynów kolumn klastrowanych, a także liczbę wierszy w grupach Otwartych, Zamkniętych lub Skompresowanych wierszy:

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

Zobacz też

widoków wykazu usługi Azure Synapse Analytics i równoległego magazynu danych
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_segments (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)