Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Geçerli veritabanındaki tüm columnstore dizinleri hakkında geçerli satır grubu düzeyinde bilgi sağlar.
Bu DMV, katalog görünümünü sys.column_store_row_groups genişletir.
| Sütun adı | Veri türü | Description |
|---|---|---|
object_id |
int | Temel alınan tablonun kimliği. |
index_id |
int | Tablodaki object_id bu columnstore dizininin kimliği. |
partition_number |
int | öğesini barındıran row_group_idtablo bölümünün kimliği. partition_number kullanarak bu DMV'yi sys.partitions |
row_group_id |
int | Bu satır grubunun kimliği. Bölümlenmiş tablolar için değer bölümün içinde benzersizdir.-1 bir bellek içi kuyruk için. |
delta_store_hobt_id |
bigint | Delta deposundaki bir satır grubunun hobt_id.NULL satır grubu delta deposunda değilse.NULL bellek içi tablonun kuyruğu için. |
state |
tinyint | İlişkili state_descriptionkimlik numarası.0 = INVISIBLE1= OPEN2 = CLOSED3 = COMPRESSED4 = TOMBSTONECOMPRESSED , bellek içi tablolar için geçerli olan tek durumdur. |
state_desc |
nvarchar(60) | Satır grubu durumunun açıklaması:0
-
INVISIBLE - Oluşturulan bir satır grubu. Örneğin:Veriler sıkıştırılırken columnstore INVISIBLE içindeki bir satır grubudur. Sıkıştırma tamamlandığında, meta veri anahtarı columnstore satır grubunun durumunu olarak INVISIBLECOMPRESSED, deltastore satır grubunun durumunu olarak CLOSEDTOMBSTONEdeğiştirir.1
-
OPEN - Yeni satırları kabul eden bir deltastore 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.2
-
CLOSED - Delta deposundaki en fazla satır sayısını içeren ve tanımlama grubu taşıma işleminin sütun deposuna sıkıştırmasını bekleyen bir satır grubu.3
-
COMPRESSED - Columnstore sıkıştırması ile sıkıştırılmış ve columnstore'da depolanan bir satır grubu.4
-
TOMBSTONE - Daha önce deltastore'da olan ve artık kullanılmayan bir satır grubu. |
total_rows |
bigint | Satır grubunda fiziksel olarak depolanan satır sayısı. Sıkıştırılmış satır grupları için. Silinmiş olarak işaretlenen satırları içerir. |
deleted_rows |
bigint | Sıkıştırılmış bir satır grubunda fiziksel olarak depolanan ve silinmek üzere işaretlenmiş satır sayısı.0 delta deposundaki satır grupları için.Kümelenmemiş columnstore dizinleri için bu değer, silme arabelleğinde depolanan silinmiş satırları içermez. Daha fazla bilgi edinmek ve silme arabelleğindeki silinen satır sayısını bulmak için bkz. sys.internal_partitions. |
size_in_bytes |
bigint | 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. |
trim_reason |
tinyint | Satır grubunun en fazla satır sayısından COMPRESSED az olması için tetiklenen neden.0 - UNKNOWN_UPGRADED_FROM_PREVIOUS_VERSION1 - NO_TRIM2 - BULKLOAD3 - REORG4 - DICTIONARY_SIZE5 - MEMORY_LIMITATION6 - RESIDUAL_ROW_GROUP7 - STATS_MISMATCH8 - SPILLOVER9 - AUTO_MERGE |
trim_reason_desc |
nvarchar(60) | öğesinin açıklaması trim_reason.0
-
UNKNOWN_UPGRADED_FROM_PREVIOUS_VERSION: SQL Server'ın önceki sürümünden yükseltirken oluştu.1
-
NO_TRIM: Satır grubu kırpılamadı. Satır grubu en fazla 1.048.576 satırla sıkıştırıldı. Delta rowgroup kapatıldıktan sonra bir satır alt kümesi silinirse satır sayısı daha az olabilir2
-
BULKLOAD: Toplu yükleme toplu iş boyutu satır sayısını sınırlamıştı.3
-
REORG: Komutun bir parçası olarak zorlamalı REORG sıkıştırma.4
-
DICTIONARY_SIZE: Sözlük boyutu, tüm satırları birlikte sıkıştıramayacak kadar büyüdü.5
-
MEMORY_LIMITATION: Tüm satırları birlikte sıkıştırmak için yeterli bellek yok.6
-
RESIDUAL_ROW_GROUP: Dizin derleme işlemi sırasında 1 milyon satır içeren son satır < grubunun bir parçası olarak kapatıldı.Not: Birden çok çekirdeğe sahip bir bölüm derlemesi, bu türdeki birden fazla kırpmaya neden olabilir. 7
-
STATS_MISMATCH: Yalnızca bellek içi tablodaki columnstore için. İstatistikler yanlış >= kuyrukta 1 milyon nitelikli satır gösteriyorsa ancak daha az bulursak, sıkıştırılmış satır grubunda < 1 milyon satır olur8
-
SPILLOVER: Yalnızca bellek içi tablodaki columnstore için. Kuyrukta > 1 milyon nitelikli satır varsa, sayı 100.000 ile 1 milyon arasındaysa kalan son toplu iş satırı sıkıştırılır9
-
AUTO_MERGE: Arka planda çalışan bir Tanımlama Grubu Taşıma birleştirme işlemi, bir veya daha fazla satır grubunu bu satır grubunda birleştirdi. |
transition_to_compressed_state |
tinyint | Bu satır grubunun deltastore'dan columnstore'daki sıkıştırılmış duruma nasıl taşındığını gösterir.1 - NOT_APPLICABLE2 - INDEX_BUILD3 - TUPLE_MOVER4 - REORG_NORMAL5 - REORG_FORCED6 - BULKLOAD7 - MERGE |
transition_to_compressed_state_desc |
nvarchar(60) |
1
-
NOT_APPLICABLE - işlem deltastore için geçerli değildir. Öte yandan, satır grubu SQL Server 2016'ya (13.x) yükseltmeden önce sıkıştırılmıştır ve bu durumda geçmiş korunmaz.2
-
INDEX_BUILD - Dizin oluşturma veya dizin yeniden derlemesi satır grubunu sıkıştırdı.3
-
TUPLE_MOVER - Arka planda çalışan tanımlama grubu taşıyıcısı satır grubunu sıkıştırdı. Satır grubu durumu olarak OPENCLOSEDdeğiştirildikten sonra tanımlama grubu taşıyıcısı gerçekleşir.4
-
REORG_NORMAL - Yeniden düzenleme işlemi, ALTER INDEX ... REORGsatır grubunu deltastore'dan columnstore'a taşıdı CLOSED . Bu, tanımlama grubu taşıyıcısının satır grubunu taşımak için zamanı olmadan önce oluştu.5
-
REORG_FORCED - Bu satır grubu deltastore'da açıktı ve tam sayıda satıra sahip olmadan önce columnstore'a zorlandı.6
-
BULKLOAD - Toplu yükleme işlemi, deltastore kullanmadan doğrudan satır grubunu sıkıştırdı.7
-
MERGE - Birleştirme işlemi bir veya daha fazla satır grubunu bu satır grubunda birleştirdi ve sonra columnstore sıkıştırmasını gerçekleştirdi. |
has_vertipaq_optimization |
bit | VertiPaq iyileştirmesi, daha yüksek sıkıştırma elde etmek için satır grubundaki satırların sırasını yeniden düzenleyerek columnstore sıkıştırmasını geliştirir. Bu iyileştirme çoğu durumda otomatik olarak gerçekleşir. VertiPaq iyileştirmenin kullanılmadığı iki durum vardır: a. bir delta satır grubu columnstore'ya geçtiğinde ve columnstore dizininde bir veya daha fazla toplanmamış dizin olduğunda - bu örnekte, eşleme dizinindeki değişiklikleri en aza indirmek için VertiPaq iyileştirmesi atlanır; b. bellek için iyileştirilmiş tablolarda columnstore dizinleri için. 0 = Hayır1 = Evet |
generation |
bigint | Bu satır grubuyla ilişkili satır grubu oluşturma. |
created_time |
datetime2 | Bu satır grubunun oluşturulduğu saat.NULL - bellek içi bir tablodaki columnstore dizini için. |
closed_time |
datetime2 | Bu satır grubunun kapatıldığı saat.NULL - bellek içi bir tablodaki columnstore dizini için. |
Results
Geçerli veritabanındaki her satır grubu için bir satır döndürür.
Permissions
Tabloda CONTROL izni ve veritabanında VIEW DATABASE STATE izni gerektirir.
SQL Server 2022 ve üzeri için izinler
Veritabanı üzerinde VIEW DATABASE PERFORMANCE STATE izni gereklidir.
Examples
A. Columnstore dizininin ne zaman yeniden düzenlenip yeniden derlenmesi gerektiğine karar vermek için parçalanmayı hesaplama
Columnstore dizinleri için, silinen satırların yüzdesi bir satır grubundaki parçalanma için iyi bir ölçüdür. Parçalanma 20% veya daha fazla olduğunda, silinen satırları kaldırın. Daha fazla örnek için bkz. Sorgu performansını geliştirmek ve kaynak tüketimini azaltmak için dizin bakımını iyileştirme.
Bu örnek, diğer sistem tablolarıyla birleştirilir sys.dm_db_column_store_row_group_physical_stats ve sonra sütunu geçerli veritabanındaki Fragmentation her satır grubunun verimliliğine ilişkin bir tahmin olarak hesaplar. Tek bir tablodaki bilgileri bulmak için yan tümcesinin WHERE önündeki açıklama kısa çizgilerini kaldırın ve bir tablo adı sağlayın.
SELECT i.object_id,
object_name(i.object_id) AS TableName,
i.name AS IndexName,
i.index_id,
i.type_desc,
CSRowGroups.*,
100 * (ISNULL(deleted_rows, 0)) / NULLIF (total_rows, 0) AS 'Fragmentation'
FROM sys.indexes AS i
INNER JOIN sys.dm_db_column_store_row_group_physical_stats AS CSRowGroups
ON i.object_id = CSRowGroups.object_id
AND i.index_id = CSRowGroups.index_id
-- WHERE object_name(i.object_id) = 'table_name'
ORDER BY object_name(i.object_id), i.name, row_group_id;