Share via


sys.column_store_row_groups (Transact-SQL)

Van toepassing op: SQL Server 2012 (11.x) en latere versies Azure SQL Managed Instance

Biedt geclusterde columnstore-indexinformatie per segment om de beheerder te helpen bij het nemen van systeembeheerbeslissingen. sys.column_store_row_groups heeft een kolom voor het totale aantal rijen dat fysiek is opgeslagen (inclusief die als verwijderd is gemarkeerd) en een kolom voor het aantal rijen dat als verwijderd is gemarkeerd. Gebruik sys.column_store_row_groups om te bepalen welke rijgroepen een hoog percentage verwijderde rijen hebben en opnieuw opgebouwd moeten worden.

Kolomnaam Gegevenstype Description
object_id int De id van de tabel waarop deze index is gedefinieerd.
index_id int ID van de index voor de tabel die deze columnstore-index bevat.
partition_number int ID van de tabelpartitie die rijgroep row_group_id bevat. Je kunt partition_number gebruiken om deze DMV aan sys.partitions te koppelen.
row_group_id int Het rijgroepnummer dat aan deze rijgroep hoort. Dit is uniek binnen de partitie.

-1 = staart van een tabel in het geheugen.
delta_store_hobt_id Bigint De hobt_id voor de OPEN rijgroep in de Delta Store.

NULL als de rijgroep niet in de delta store zit.

NULL voor de staart van een in-memory tabel.
state tinyint ID-nummer gekoppeld aan de state_description.

0 = ONZICHTBAAR

1 = OPEN

2 = GESLOTEN

3 = GECOMPRIMEERD

4 = GRAFSTEEN
state_description nvarchar(60) Beschrijving van de persistente toestand van de rijgroep:

INVISIBLE -A verborgen gecomprimeerd segment dat wordt opgebouwd uit data in een delta store. Leesacties gebruiken de delta-opslag totdat het onzichtbare, gecomprimeerde segment is voltooid. Daarna wordt het nieuwe segment zichtbaar gemaakt en wordt de bron-delta store verwijderd.

OPEN - Een lees/schrijfrijgroep die nieuwe records accepteert. Een open rijgroep is nog steeds in rowstore-formaat en is niet gecomprimeerd naar columnstore-formaat.

GESLOTEN - Een rijgroep die is ingevuld, maar nog niet gecomprimeerd door het tuple mover-proces.

GECOMPRIMEERD - Een rijgroep die gevuld en gecomprimeerd is.
total_rows Bigint Totaal aantal rijen fysiek opgeslagen in de rijgroep. Sommige zijn misschien verwijderd, maar ze worden nog steeds opgeslagen. Het maximale aantal rijen in een rijgroep is 1.048.576 (hexadecimale FFFFF).
deleted_rows Bigint Totaal aantal rijen in de rijgroep als verwijderd gemarkeerd. Dit is altijd 0 voor DELTA-rijgroepen.
size_in_bytes Bigint Grootte in bytes van alle gegevens in deze rijgroep (exclusief metadata of gedeelde woordenboeken), voor zowel DELTA als COLUMNSTORE-rijgroepen.

Opmerkingen

Geeft één rij terug voor elke columnstore-rijgroep voor elke tabel met een geclusterde of niet-geclusterde columnstore-index.

Gebruik sys.column_store_row_groups om het aantal rijen in de rijgroep en de grootte van de rijgroep te bepalen.

Wanneer het aantal verwijderde rijen in een rijgroep groeit tot een groot percentage van het totaal aantal rijen, wordt de tabel minder efficiënt. Herbouw de columnstore-index om de grootte van de tabel te verkleinen, waardoor de schijf-I/O die nodig is om de tabel te lezen wordt verminderd. Om de columnstore-index te reconstrueren, gebruik de REBUILD-optie van de ALTER INDEX-instructie .

De bijwerkbare columnstore voegt eerst nieuwe gegevens in in een OPEN rijgroep, die in rowstore-formaat is en soms ook een delta-tabel wordt genoemd. Zodra een open rijgroep vol is, verandert de toestand naar GESLOTEN. Een gesloten rijgroep wordt door de tuple mover gecomprimeerd tot columnstore-formaat en de status verandert in COMPRESSED. De tuple mover is een achtergrondproces dat periodiek wakker wordt en controleert of er gesloten rijgroepen zijn die klaar zijn om te comprimeren tot een columnstore-rijgroep. De tuple mover verwijdert ook alle rijgroepen waarin elke rij is verwijderd. Gedealviseerde rijgroepen worden aangeduid als TOMBSTONE. Om de tuple mover direct uit te voeren, gebruik je de REORGANISERING-optie van de ALTER INDEX-instructie .

Wanneer een kolomopslag-rijgroep is gevuld, wordt deze gecomprimeerd en stopt het accepteren van nieuwe rijen. Wanneer rijen uit een gecomprimeerde groep worden verwijderd, blijven ze aanwezig maar worden ze als verwijderd gemarkeerd. Updates aan een gecomprimeerde groep worden geïmplementeerd als verwijdering uit de gecomprimeerde groep, en als een invoeging naar een open groep.

Permissions

Geeft informatie terug voor een tabel als de gebruiker toestemming heeft VIEW DEFINITION voor de tabel.

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden

Het volgende voorbeeld voegt de sys.column_store_row_groups-tabel toe aan andere systeemtabellen om informatie over specifieke tabellen terug te geven. De berekende PercentFull kolom is een schatting van de efficiëntie van de rijgroep. Om informatie over één tabel te vinden, verwijder je de commentaarkoppeltekens voor de WHERE-clausule en geef je een tabelnaam.

SELECT i.object_id, object_name(i.object_id) AS TableName,   
i.name AS IndexName, i.index_id, i.type_desc,   
CSRowGroups.*,   
100*(total_rows - ISNULL(deleted_rows,0))/total_rows AS PercentFull    
FROM sys.indexes AS i  
JOIN sys.column_store_row_groups 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;  

Zie ook

objectcatalogusweergaven (Transact-SQL)
catalogusweergaven (Transact-SQL)
query's uitvoeren op de veelgestelde vragen over sql Server System Catalog
sys.columns (Transact-SQL)
sys.all_columns (Transact-SQL)
sys.computed_columns (Transact-SQL)
Handleiding voor Columnstore-indexen
sys.column_store_dictionaries (Transact-SQL)
sys.column_store_segments (Transact-SQL)