Sdílet prostřednictvím


sys.column_store_row_groups (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Poskytuje informace o indexu columnstore na základě jednotlivých segmentů.

Pro clusterované indexy columnstore obsahuje sloupec pro celkový počet fyzicky uložených řádků (včetně těch, sys.column_store_row_groups které jsou označené jako odstraněné) a sloupec pro počet řádků označených jako odstraněné. Slouží sys.column_store_row_groups k určení, které skupiny řádků mají vysoké procento odstraněných řádků a které se mají znovu vytvořit.

Název sloupce Datový typ Description
object_id int ID tabulky, na které je tento index definován.
index_id int ID indexu columnstore.
partition_number int Oddíl tabulky, který obsahuje skupinu řádků identifikovanou uživatelem row_group_id. Slouží partition_number k připojení sys.partitions.
row_group_id int Číslo skupiny řádků přiřazené této skupině řádků. Toto číslo je v rámci oddílu jedinečné.

-1 = konec tabulky optimalizované pro paměť.
delta_store_hobt_id bigint Skupina hobt_id řádků v rozdílovém OPEN úložišti.

HODNOTA NULL, pokud skupina řádků není v rozdílovém úložišti.

Hodnota NULL pro konec tabulky optimalizované pro paměť.
state tinyint Číslo popisující stav skupiny řádků.

0 = INVISIBLE

1 = OPEN

2 = CLOSED

3 = COMPRESSED

4 = TOMBSTONE
state_description nvarchar(60) Popis stavu skupiny řádků:

INVISIBLE – Skrytý komprimovaný segment v procesu sestavení z dat v rozdílovém úložišti. Akce čtení používají rozdílové úložiště, dokud se nedokončí neviditelný komprimovaný segment. Poté je nový segment viditelný a zdrojové delta úložiště odstraněno.

OPEN – Skupina řádků pro čtení a zápis, která přijímá nové řádky. Otevřená skupina řádků je stále ve formátu rowstore a není komprimovaná do formátu columnstore.

CLOSED – Skupina řádků, která je vyplněna, ale ještě není komprimována procesem přesunutí řazené kolekce členů.

COMPRESSED – Skupina řádků, která je vyplněná a komprimovaná.
total_rows bigint Celkový počet řádků je fyzicky uložen ve skupině řádků. Odstraněné řádky můžou být stále uložené. Maximální počet řádků ve skupině řádků je 1 048 576.
deleted_rows bigint Celkový počet řádků ve skupině řádků, které jsou označené jako odstraněné, ale zůstanou uložené. Tato hodnota je vždy 0 určená pro rozdílové skupiny řádků.

U neclusterovaných indexů columnstore tato hodnota nezahrnuje odstraněné řádky uložené ve vyrovnávací paměti pro odstranění. Další informace a zjištění počtu odstraněných řádků v vyrovnávací paměti pro odstranění najdete v tématu sys.internal_partitions.
size_in_bytes bigint Velikost v bajtech všech dat v této skupině řádků (nezahrnuje metadata nebo sdílené slovníky) pro rozdílové úložiště i skupiny řádků columnstore.

Poznámky

Vrátí jeden řádek pro každou skupinu řádků columnstore pro každý oddíl každé tabulky, která má clusterovaný nebo neclusterovaný index columnstore.

Umožňuje sys.column_store_row_groups zjistit, kolik řádků je ve skupině řádků a velikost skupiny řádků.

Když počet smazaných řádků ve skupině řádků vzroste na velké procento z celkového počtu řádků, tabulka se stává méně efektivní. Přestavět index úložiště sloupců tak, aby se zmenšila velikost tabulky, čímž se snížila potřeba diskového I/O pro čtení tabulky. K opětovnému sestavení indexu columnstore použijte REBUILD klauzuli ALTER INDEX příkazu.

Aktualizovatelné columnstore nejprve vloží nová data do otevřené skupiny řádků, která je ve formátu rowstore, a někdy se také označuje jako rozdílová tabulka. Jakmile je otevřená skupina řádků plná, změní se její stav na CLOSED. Uzavřená skupina řádků je komprimována do formátu columnstore přesunutím řazené kolekce členů a stav se změní na COMPRESSED. N-ticový pohyb je proces na pozadí, který se pravidelně probouzí a kontroluje, zda existují uzavřené řádkové skupiny připravené ke kompresi do columnstore řádkové skupiny. Přesun řazené kolekce členů také zruší přidělení všech skupin řádků, ve kterých je každý řádek odstraněn. Uvolněné skupiny řádků jsou označené jako TOMBSTONE. K okamžitému spuštění moveru řazené kolekce členů použijte REORGANIZE klauzuli ALTER INDEX příkazu.

Když se skupina řádků columnstore vyplní, zkomprimuje se a přestane přijímat nové řádky. Když odstraníte řádky z komprimované skupiny, zůstanou, ale jsou označené jako odstraněné. Aktualizace komprimované skupiny jsou implementovány jako smazání z komprimované skupiny a vložení do otevřené skupiny.

Povolení

Vrací informace o tabulce, pokud má uživatel VIEW DEFINITION k ní oprávnění.

Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v tématu Konfigurace viditelnosti metadat.

Examples

Následující příklad spojí sys.column_store_row_groups zobrazení a další systémová zobrazení a vrátí informace o clusterovaných indexech columnstore. Sloupec percent_full představuje odhad efektivity skupiny řádků.

SELECT i.object_id,
       OBJECT_SCHEMA_NAME(i.object_id) AS schema_name,
       OBJECT_NAME(i.object_id) AS table_name,
       i.name AS index_name,
       i.type_desc AS index_type_desc,
       rg.partition_number,
       rg.row_group_id,
       rg.state_description,
       rg.total_rows,
       rg.deleted_rows,
       rg.size_in_bytes,
       100 * (rg.total_rows - ISNULL(rg.deleted_rows, 0)) / total_rows AS percent_full
FROM sys.indexes AS i
     INNER JOIN sys.column_store_row_groups AS rg
         ON i.object_id = rg.object_id
        AND i.index_id = rg.index_id
WHERE INDEXPROPERTY(i.object_id, i.name, 'IsClustered') = 1
ORDER BY schema_name, table_name, index_name, row_group_id;

Další informace najdete v tématu Kontrola fragmentace indexu columnstore.