Condividi tramite


sys.internal_partitions (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di AzureIstanza gestita di SQL di Azure

Restituisce una riga per ogni set di righe che tiene traccia dei dati interni per gli indici columnstore nelle tabelle basate su disco. Questi set di righe sono interni agli indici columnstore e tengono traccia delle righe eliminate, dei mapping dei rowgroup e dei rowgroup dell'archivio differenziale. Tengono traccia dei dati per ogni partizione di tabella. Ogni tabella ha almeno una partizione. Il motore di database ricrea i set di righe ogni volta che ricompila l'indice columnstore.

Nome colonna Tipo di dati Descrizione
partition_id bigint ID partizione per questa partizione. Valore univoco all'interno di un database.
object_id Int ID oggetto per la tabella che contiene la partizione.
index_id Int ID di indice per l'indice columnstore definito nella tabella.

1 = indice columnstore cluster
2 = indice columnstore non cluster
partition_number Int Numero di partizione.

1 = prima partizione di una tabella partizionata o singola partizione di una tabella non partizionata.

2 = seconda partizione e così via.
internal_object_type tinyint Oggetti set di righe che tengono traccia dei dati interni per l'indice 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 - Questo indice bitmap tiene traccia delle righe contrassegnate come eliminate dal columnstore. La bitmap è per ogni rowgroup perché le partizioni possono avere righe in più rowgroup. Queste righe sono ancora fisicamente presenti e occupano spazio nel columnstore.

COLUMN_STORE_DELTA_STORE - Archivia gruppi di righe, denominati rowgroup, che non sono stati compressi nell'archiviazione a colonne. Ogni partizione di tabella può avere zero o più rowgroup deltastore.

COLUMN_STORE_DELETE_BUFFER - Per mantenere le eliminazioni per gli indici columnstore non cluster aggiornabili. Quando una query elimina una riga dalla tabella rowstore sottostante, il buffer di eliminazione tiene traccia dell'eliminazione dal columnstore. Quando il numero di righe eliminate supera 1.048.576, vengono unite nuovamente nella bitmap di eliminazione dal thread di sfondo di Tuple Mover o da un'operazione ALTER INDEX ... REORGANIZE . In un determinato momento, l'unione della bitmap di eliminazione e del buffer di eliminazione rappresenta tutte le righe eliminate.

COLUMN_STORE_MAPPING_INDEX - Usato solo quando l'indice columnstore cluster ha un indice non cluster secondario. In questo modo le chiavi di indice non cluster vengono mappate al rowgroup e all'ID di riga nel columnstore. Archivia solo le chiavi per le righe che si spostano in un rowgroup diverso. Ciò si verifica quando un rowgroup differenziale viene compresso nel columnstore e quando un'operazione di unione unisce righe da due rowgroup diversi.
row_group_id Int ID per il rowgroup deltastore. Ogni partizione di tabella può avere zero o più rowgroup deltastore.
hobt_id bigint ID dell'oggetto set di righe interno (HoBT). Può essere usato in join con altre viste di sistema e funzioni, ad esempio sys.dm_db_index_physical_stats() per ottenere altre informazioni sulle caratteristiche fisiche del set di righe interno.
rows bigint Numero approssimativo di righe nella partizione.
data_compression tinyint Tipo di compressione per ogni partizione:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) Tipo di compressione per ogni partizione. I valori possibili per le tabelle rowstore sono NONE, ROWe PAGE. I valori possibili per le tabelle columnstore sono COLUMNSTORE e COLUMNSTORE_ARCHIVE.

Autorizzazioni

Richiede l'appartenenza al ruolo public. Per altre informazioni, vedere Metadata Visibility Configuration.

Osservazioni:

Il motore di database ricrea nuovi indici interni columnstore ogni volta che crea o ricompila un indice columnstore.

Esempi

R. Visualizzare tutti i set di righe interni per una tabella

In questo esempio vengono restituiti tutti i set di righe columnstore interni per una tabella. È anche possibile usare la hobt_id colonna per unire altre viste e funzioni di sistema e trovare altre informazioni sul set di righe specifico.

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