sys.pdw_nodes_column_store_row_groups (Transact-SQL)
Yöneticinin Azure Synapse Analytics'te sistem yönetimi kararları almalarına yardımcı olmak için segment başına kümelenmiş columnstore dizin bilgileri sağlar. sys.pdw_nodes_column_store_row_groups fiziksel olarak depolanan toplam satır sayısı (silinmiş olarak işaretlenenler dahil) için bir sütun ve silinmiş olarak işaretlenmiş satır sayısı için bir sütun vardır. Silinen satırların yüzdesi yüksek olan ve yeniden oluşturulması gereken satır gruplarını belirlemek için sys.pdw_nodes_column_store_row_groups kullanın.
Sütun adı | Veri tipi | Açıklama |
---|---|---|
object_id | int | Temel alınan tablonun kimliği. Bu, Denetim düğümündeki mantıksal tablonun object_id değil, İşlem düğümündeki fiziksel tablodur. Örneğin, object_id sys.tables içindeki object_id eşleşmiyor. sys.tables ile birleştirmek için sys.pdw_index_mappings kullanın. |
index_id | int | object_id tablosundaki kümelenmiş columnstore dizininin kimliği. |
partition_number | int | row_group_idsatır grubunu tutan tablo bölümünün kimliği. bu DMV'yi sys.partitions dosyasına eklemek için partition_number kullanabilirsiniz. |
row_group_id | int | Bu satır grubunun kimliği. Bu bölüm içinde benzersizdir. |
delta_store_hobt_id | bigint | Delta satır grupları için hobt_id veya satır grubu türü delta değilse NULL. Delta satır grubu, yeni kayıtları kabul eden bir okuma/yazma satırı grubudur. Delta satır grubu open durumu |
durum | tinyint | state_description ile ilişkili kimlik numarası. 1 = AÇ 2 = KAPALI 3 = SıKıŞTıRıLMıŞ |
state_description | nvarchar(60) | Satır grubunun kalıcı durumunun açıklaması: OPEN - Yeni kayıtları kabul eden bir okuma/yazma satırı grubu. Açık satır grubu hala satır deposu biçimindedir ve columnstore biçiminde sıkıştırılmamıştır. KAPALI - Doldurulan ancak tanımlama grubu taşıyıcı işlemi tarafından henüz sıkıştırılmayan bir satır grubu. COMPRESSED - Doldurulmuş ve sıkıştırılmış bir satır grubu. |
total_rows | bigint | Satır grubunda fiziksel olarak depolanan toplam satır sayısı. Bazıları silinmiş olabilir, ancak bunlar hala depolanır. Bir satır grubundaki satır sayısı üst sınırı 1.048.576'dır (onaltılık FFFFF). |
deleted_rows | bigint | Satır grubunda fiziksel olarak depolanan ve silinmek üzere işaretlenmiş satır sayısı. DELTA satır grupları için her zaman 0. |
size_in_bytes | int | Bu satır grubundaki tüm sayfaların bayt cinsinden birleşik boyutu. Bu boyut, meta verileri veya paylaşılan sözlükleri depolamak için gereken boyutu içermez. |
pdw_node_id | int | Azure Synapse Analytics düğümünün benzersiz kimliği. |
distribution_id | int | Dağıtımın benzersiz kimliği. |
Açıklamalar
Kümelenmiş veya kümelenmemiş columnstore dizinine sahip her tablo için her columnstore satır grubu için bir satır döndürür.
Satır grubuna dahil edilen satır sayısını ve satır grubunun boyutunu belirlemek için sys.pdw_nodes_column_store_row_groups kullanın.
Bir satır grubundaki silinen satırların sayısı toplam satırların büyük bir yüzdesine arttığında, tablo daha az verimli hale gelir. Tablo boyutunu küçültmek için columnstore dizinini yeniden derleyerek tabloyu okumak için gereken disk G/Ç'sini küçültün. Columnstore dizinini yeniden oluşturmak için ALTER INDEX deyiminin
Güncelleştirilebilir columnstore ilk olarak satır deposu biçiminde olan ve bazen delta tablosu olarak da adlandırılan OPEN satır grubuna yeni veriler ekler. Açık bir satır grubu dolduktan sonra durumu CLOSEDolarak değişir. Kapalı bir satır grubu, tanımlama grubu taşıyıcısı tarafından columnstore biçiminde sıkıştırılır ve durum COMPRESSEDolarak değişir. Tanımlama grubu taşıyıcısı, düzenli aralıklarla uyanan ve columnstore satır grubuna sıkıştırmaya hazır kapalı satır grupları olup olmadığını denetleen bir arka plan işlemidir. Tanımlama grubu taşıyıcısı, her satırın silindiği tüm satır gruplarını serbest bırakmıştır. Serbest bırakılmış satır grupları KULLANIMDANolarak işaretlenir. Tanımlama grubu taşıyıcısını hemen çalıştırmak için ALTER INDEX deyiminin
Bir columnstore satır grubu doldurulduğunda, bu grup sıkıştırılır ve yeni satırları kabul etme işlemini durdurur. Satırlar sıkıştırılmış bir gruptan silindiğinde kalır ancak silinmiş olarak işaretlenir. Sıkıştırılmış grup güncelleştirmeleri, sıkıştırılmış gruptan silme ve açık bir gruba ekleme olarak uygulanır.
İzinler
SUNUCU DURUMUNU GÖRÜNTÜLEME izni gerektirir.
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
Aşağıdaki örnek, belirli tablolar hakkındaki bilgileri döndürmek için sys.pdw_nodes_column_store_row_groups tablosunu diğer sistem tablolarına birleştirir. Hesaplanan PercentFull
sütunu, satır grubunun verimliliğine ilişkin bir tahmindir. Tek bir tablodaki bilgileri bulmak için WHERE yan tümcesinin önündeki açıklama kısa çizgilerini kaldırın ve bir tablo adı sağlayın.
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;
Aşağıdaki Azure Synapse Analytics örneği, kümelenmiş sütun depoları için bölüm başına satırları ve Açık, Kapalı veya Sıkıştırılmış Satır gruplarında kaç satır olduğunu sayar:
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
Ayrıca Bkz.
Azure Synapse Analytics ve Paralel Veri Ambarı Katalog Görünümlerini
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_segments (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)