sys.internal_partitions (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive di Istanza 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. SQL Server 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. Le 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 la gestione delle 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 1048576, vengono unite di nuovo nella bitmap di eliminazione in base al thread di spostamento tuple in background o da un comando esplicito Riorganizza. In un determinato momento, l'unione della bitmap di eliminazione e del buffer di eliminazione rappresenta tutte le righe eliminate.

COLUMN_STORE_MAPPING_INDEX: viene usato solo quando l'indice columnstore cluster ha un indice secondario non cluster. In questo modo le chiavi di indice non cluster vengono mappate al rowgroup e all'ID di riga corretti 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). Si tratta di una buona chiave per l'unione con altri DMV per ottenere altre informazioni sulle caratteristiche fisiche del set di righe interno.
rows bigint Numero approssimativo di righe nella partizione.
data_compression tinyint Stato della compressione per il set di righe:

0 = NONE

1 = ROW

2 = PAGE
data_compression_desc nvarchar(60) Stato della compressione per ogni partizione. I valori possibili per le tabelle rowstore sono NONE, ROW e PAGE. I valori possibili per le tabelle columnstore sono COLUMNSTORE e COLUMNSTORE_ARCHIVE.
optimize_for_sequential_key bit 1 = La partizione ha l'ottimizzazione dell'inserimento dell'ultima pagina abilitata.

0 = Valore predefinito. L'ottimizzazione dell'inserimento dell'ultima pagina è disabilitata.

Autorizzazioni

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

Osservazioni generali

SQL Server 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 il hobt_id per 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  
JOIN sys.indexes AS i  
on i.object_id = p.object_id  
WHERE p.object_id = OBJECT_ID ( '<table name' ) ;  

Vedi anche

Viste del catalogo oggetti (Transact-SQL)
Viste del catalogo (Transact-SQL)
Domande frequenti sull'esecuzione di query nel catalogo di sistema di SQL Server