sys.internal_partitions (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed Instance

Gibt eine Zeile für jedes Rowset zurück, das interne Daten für Columnstore-Indizes in datenträgerbasierten Tabellen nachverfolgt. Diese Rowsets sind intern für Columnstore-Indizes und verfolgen gelöschte Zeilen, Zeilengruppenzuordnungen und Deltaspeicherzeilengruppen nach. Sie verfolgen die Daten für jede Tabellenpartition nach. Jede Tabelle verfügt über mindestens eine Partition. SQL Server erstellt die Rowsets jedes Mal neu, wenn der Columnstore-Index neu erstellt wird.

Spaltenname Datentyp BESCHREIBUNG
partition_id bigint Partitions-ID für diese Partition. Sie ist innerhalb einer Datenbank eindeutig.
object_id int Objekt-ID für die Tabelle, die die Partition enthält.
index_id int Index-ID für den in der Tabelle definierten Columnstore-Index.

1 = gruppierter Columnstore-Index

2 = nicht gruppierter Columnstore-Index
partition_number int Die Partitionsnummer.

1 = erste Partition einer partitionierten Tabelle oder die einzelne Partition einer nicht partitionierten Tabelle.

2 = zweite Partition usw.
internal_object_type tinyint Rowsetobjekte, die interne Daten für den Columnstore-Index nachverfolgen.

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: Dieser Bitmapindex verfolgt Zeilen nach, die als gelöscht aus dem Columnstore markiert sind. Die Bitmap gilt für jede Zeilengruppe, da Partitionen Zeilen in mehreren Zeilengruppen enthalten können. Die Zeilen sind noch physisch vorhanden und nehmen platz im Columnstore ein.

COLUMN_STORE_DELTA_STORE: Speichert Gruppen von Zeilen, die als Zeilengruppen bezeichnet werden, die nicht in spaltenbasiertem Speicher komprimiert wurden. Jede Tabellenpartition kann null oder mehr Deltastore-Zeilengruppen aufweisen.

COLUMN_STORE_DELETE_BUFFER: Dient zum Verwalten von Löschvorgängen zu aktualisierbaren nicht gruppierten Columnstore-Indizes. Wenn eine Abfrage eine Zeile aus der zugrunde liegenden Rowstore-Tabelle löscht, verfolgt der Löschpuffer den Löschvorgang aus dem Columnstore nach. Wenn die Anzahl der gelöschten Zeilen 1048576 überschreitet, werden sie mithilfe des Tupelverschiebungsthreads im Hintergrund oder durch einen expliziten Reorganize-Befehl wieder in die Bitmap zum Löschen zusammengeführt. Zu einem bestimmten Zeitpunkt stellt die Vereinigung der Löschbitbitte und des Löschpuffers alle gelöschten Zeilen dar.

COLUMN_STORE_MAPPING_INDEX: Wird nur verwendet, wenn der gruppierte Columnstore-Index über einen sekundären nicht gruppierten Index verfügt. Dadurch werden nicht gruppierte Indexschlüssel der richtigen Zeilengruppe und Zeilen-ID im Columnstore zugeordnet. Es speichert nur Schlüssel für Zeilen, die in eine andere Zeilengruppe verschoben werden. Dies tritt auf, wenn eine Deltazeilengruppe im Columnstore komprimiert wird und wenn bei einem Mergevorgang Zeilen aus zwei verschiedenen Zeilengruppen zusammengeführt werden.
Row_group_id int ID für die Deltastore-Zeilengruppe. Jede Tabellenpartition kann null oder mehr Deltastore-Zeilengruppen aufweisen.
hobt_id bigint ID des internen Rowsetobjekts (HoBT). Dies ist ein guter Schlüssel für die Verknüpfung mit anderen DMVs, um weitere Informationen über die physischen Eigenschaften des internen Rowsets zu erhalten.
rows bigint Die ungefähre Anzahl der Zeilen in dieser Partition.
data_compression tinyint Der Komprimierungsstatus für das Rowset:

0 = NONE

1 = ROW

2 = PAGE
data_compression_desc nvarchar(60) Der Komprimierungsstatus für jede Partition. Mögliche Werte für rowstore-Tabellen sind NONE, ROW und PAGE. Mögliche Werte für columnstore-Tabellen sind COLUMNSTORE und COLUMNSTORE_ARCHIVE.
optimize_for_sequential_key bit 1 = Auf der Partition ist die Optimierung für das Einfügen der letzten Seite aktiviert.

0 = Standardwert. Für die Partition ist die Optimierung für das Einfügen der letzten Seite deaktiviert.

Berechtigungen

Erfordert die Mitgliedschaft in der Rolle public. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Allgemeine Hinweise

SQL Server jedes Mal, wenn ein Columnstore-Index erstellt oder neu erstellt wird, neue interne Columnstore-Indizes neu.

Beispiele

A. Anzeigen aller internen Rowsets für eine Tabelle

In diesem Beispiel werden alle internen Columnstore-Rowsets für eine Tabelle zurückgegeben. Sie können auch die hobt_id verwenden, um weitere Informationen zum jeweiligen Rowset zu finden.

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

Weitere Informationen

Katalogsichten für Objekte (Transact-SQL)
Katalogsichten (Transact-SQL)
FAQ: Abfragen des SQL Server-Systemkatalogs