Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:azure Synapse Analytics
Analytics 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
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)