Sdílet prostřednictvím


sys.internal_partitions (Transact-SQL)

Platí na: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Vrátí jeden řádek pro každou sadu řádků, která sleduje interní data pro indexy columnstore v tabulkách založených na disku. Tyto sady řádků jsou interní pro indexy columnstore a sledují odstraněné řádky, mapování skupin řádků a rozdílové úložiště řádků. Sledují data pro každý oddíl tabulky. Každá tabulka má aspoň jeden oddíl. Databázový stroj znovu vytvoří sady řádků při každém opětovném sestavení indexu columnstore.

Název sloupce Datový typ Popis
partition_id bigint ID oddílu pro tento oddíl To je jedinečné v rámci databáze.
object_id Int ID objektu tabulky, která obsahuje oddíl.
index_id Int ID indexu indexu columnstore definovaného v tabulce.

1 = clusterovaný index columnstore
2 = neclusterovaný index columnstore
partition_number Int Číslo oddílu.

1 = první oddíl dělené tabulky nebo jeden oddíl tabulky, která není rozdělená.

2 = druhý oddíl atd.
internal_object_type tinyint Objekty sady řádků, které sledují interní data pro index columnstore.

2 = COLUMN_STORE_DELETE_BITMAP
3 = COLUMN_STORE_DELTA_STORE
4 = COLUMN_STORE_DELETE_BUFFER
5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc nvarchar(60) COLUMN_STORE_DELETE_BITMAP - Tento rastrový index sleduje řádky, které jsou označené jako odstraněné ze columnstore. Rastrový obrázek je určen pro každou skupinu řádků, protože oddíly můžou mít řádky ve více skupinách řádků. Tyto řádky jsou stále fyzicky přítomné a zabírají místo v úložišti sloupců.

COLUMN_STORE_DELTA_STORE – Ukládá skupiny řádků označované jako skupiny řádků, které nebyly komprimovány do sloupcového úložiště. Každý oddíl tabulky může obsahovat nula nebo více skupin řádků deltastore.

COLUMN_STORE_DELETE_BUFFER – Pro zachování odstranění aktualizovatelné neclusterované indexy columnstore. Když dotaz odstraní řádek z podkladové tabulky rowstore, vyrovnávací paměť pro odstranění sleduje odstranění ze columnstore. Když počet odstraněných řádků překročí 1 048 576, sloučí se zpět do rastrového obrázku pro odstranění vláknem pozadí řazené kolekce členů nebo ALTER INDEX ... REORGANIZE operací. V jakémkoli časovém okamžiku představuje sjednocení rastrového obrázku pro odstranění a vyrovnávací paměť pro odstranění všechny odstraněné řádky.

COLUMN_STORE_MAPPING_INDEX – Používá se pouze v případech, kdy má clusterovaný index columnstore sekundární neclusterovaný index. Tím se mapují neclusterované indexové klíče na ID řádku a skupiny řádků v úložišti sloupců. Ukládá pouze klíče pro řádky, které se přesunou do jiné skupiny řádků. K tomu dochází, když je rozdílová skupina řádků komprimována do columnstore a při slučovací operaci sloučí řádky ze dvou různých skupin řádků.
row_group_id Int ID skupiny řádků deltastore. Každý oddíl tabulky může obsahovat nula nebo více skupin řádků deltastore.
hobt_id bigint ID interního objektu sady řádků (HoBT). Lze použít ve spojeních s jinými systémovými zobrazeními a funkcemi, jako je sys.dm_db_index_physical_stats(), abyste získali další informace o fyzických vlastnostech interní sady řádků.
rows bigint Přibližný počet řádků v tomto oddílu
data_compression tinyint Typ komprese pro každý oddíl:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) Typ komprese pro každý oddíl. Možné hodnoty pro tabulky rowstore jsou NONE, ROWa PAGE. Možné hodnoty pro tabulky columnstore jsou COLUMNSTORE a COLUMNSTORE_ARCHIVE.

Povolení

Vyžaduje členství v public roli. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Poznámky

Databázový stroj znovu vytvoří nové interní indexy columnstore pokaždé, když vytvoří nebo znovu sestaví index columnstore.

Příklady

A. Zobrazení všech interních sad řádků pro tabulku

Tento příklad vrátí všechny interní sady řádků columnstore pro tabulku. Pomocí sloupce můžete hobt_id také spojit s jinými systémovými zobrazeními a funkcemi a najít další informace o konkrétní sadě řádků.

SELECT i.object_id,
       i.index_id,
       i.name,
       p.hobt_id,
       p.internal_object_type_id,
       p.internal_object_type_desc
FROM sys.internal_partitions AS p
     INNER JOIN sys.indexes AS i
         ON i.object_id = p.object_id
WHERE p.object_id = OBJECT_ID('<table name>');