Dela via


sys.internal_partitions (Transact-SQL)

gäller för: SQL Server 2016 (13.x) och senare Azure SQL DatabaseAzure SQL Managed Instance

Returnerar en rad för varje raduppsättning som spårar interna data för kolumnlagringsindex på diskbaserade tabeller. Dessa raduppsättningar är interna för kolumnlagringsindex och spårar borttagna rader, radgruppsmappningar och deltalagringsradgrupper. De spårar data för varje tabellpartition. Varje tabell har minst en partition. Databasmotorn återskapar raduppsättningarna varje gång kolumnlagringsindexet återskapas.

Kolumnnamn Datatyp Beskrivning
partition_id bigint Partitions-ID för den här partitionen. Detta är unikt i en databas.
object_id Int Objekt-ID för tabellen som innehåller partitionen.
index_id Int Index-ID för kolumnlagringsindexet som definierats i tabellen.

1 = grupperat columnstore-index
2 = icke-grupperat kolumnlagringsindex
partition_number Int Partitionsnumret.

1 = första partitionen i en partitionerad tabell eller den enda partitionen i en icke-partitionerad tabell.

2 = andra partitionen och så vidare.
internal_object_type tinyint Raduppsättningsobjekt som spårar interna data för kolumnlagringsindexet.

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 – Det här bitmappsindexet spårar rader som har markerats som borttagna från kolumnarkivet. Bitmappen är för varje radgrupp eftersom partitioner kan ha rader i flera radgrupper. Dessa rader finns fortfarande fysiskt och tar upp utrymme i kolumnarkivet.

COLUMN_STORE_DELTA_STORE – Lagrar grupper med rader, som kallas rowgroups, som inte har komprimerats till kolumnlagring. Varje tabellpartition kan ha noll eller fler deltastore-radgrupper.

COLUMN_STORE_DELETE_BUFFER – För att underhålla borttagningar till uppdateringsbara icke-illustrerade kolumnlagringsindex. När en fråga tar bort en rad från den underliggande radlagringstabellen spårar borttagningsbufferten borttagningen från kolumnarkivet. När antalet borttagna rader överskrider 1 048 576 sammanfogas de tillbaka till bitmappen ta bort av bakgrundstråden Tuple Mover eller av en ALTER INDEX ... REORGANIZE åtgärd. Vid en viss tidpunkt representerar borttagningsbitmappens union och borttagningsbufferten alla borttagna rader.

COLUMN_STORE_MAPPING_INDEX – Används endast när det klustrade kolumnlagringsindexet har ett sekundärt icke-grupperat index. Detta mappar icke-grupperade indexnycklar till radgruppen och rad-ID:t i kolumnarkivet. Den lagrar bara nycklar för rader som flyttas till en annan radgrupp. Detta inträffar när en deltaradgrupp komprimeras till kolumnarkivet och när en sammanslagningsåtgärd sammanfogar rader från två olika radgrupper.
row_group_id Int ID för deltastore-radgruppen. Varje tabellpartition kan ha noll eller fler deltastore-radgrupper.
hobt_id bigint ID för det interna raduppsättningsobjektet (HoBT). Kan användas i kopplingar till andra systemvyer och funktioner som sys.dm_db_index_physical_stats() för att få mer information om de fysiska egenskaperna för den interna raduppsättningen.
rows bigint Ungefärligt antal rader i den här partitionen.
data_compression tinyint Komprimeringstypen för varje partition:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) Komprimeringstypen för varje partition. Möjliga värden för radlagringstabeller är NONE, ROWoch PAGE. Möjliga värden för columnstore-tabeller är COLUMNSTORE och COLUMNSTORE_ARCHIVE.

Behörigheter

Kräver medlemskap i public rollen. För mer information, se inställningar för metadatasynlighet.

Anmärkningar

Databasmotorn återskapar nya interna kolumnlagringsindex varje gång det skapar eller återskapar ett kolumnlagringsindex.

Exempel

A. Visa alla interna raduppsättningar för en tabell

Det här exemplet returnerar alla interna kolumnlagringsrader för en tabell. Du kan också använda hobt_id kolumnen för att ansluta till andra systemvyer och funktioner och hitta mer information om den specifika raduppsättningen.

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>');