Freigeben über


sys.internal_partitions (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL verwaltete Instanz

Gibt eine Zeile für jedes Rowset zurück, das interne Daten für Spaltenspeicherindizes in datenträgerbasierten Tabellen nachverfolgt. Diese Rowsets sind intern für Spaltenspeicherindizes und nachverfolgen gelöschte Zeilen, Zeilengruppenzuordnungen und Deltaspeicher-Zeilengruppen. Sie verfolgen Daten für jede Tabellenpartition; Jede Tabelle verfügt über mindestens eine Partition. SQL Server erstellt die Rowsets jedes Mal neu, wenn der Spaltenspeicherindex 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 Spaltenspeicherindex.

1 = Gruppierter Spaltenspeicherindex

2 = nicht gruppierter Spaltenspeicherindex
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 Rowset-Objekte, die interne Daten für den Spaltenspeicherindex 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, die aus dem Columnstore als gelöscht markiert sind. Die Bitmap gilt für jede Zeilengruppe, da Partitionen Zeilen in mehreren Zeilengruppen enthalten können. Die Zeilen sind immer noch physisch vorhanden und nehmen Platz im Spaltenspeicher ein.

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

COLUMN_STORE_DELETE_BUFFER – Zum Verwalten von Löschvorgangen für aktualisierbare nicht gruppierte Spaltenspeicherindizes. Wenn eine Abfrage eine Zeile aus der zugrunde liegenden Rowstore-Tabelle löscht, verfolgt der Löschpuffer den Löschvorgang aus dem Columnstore. Wenn die Anzahl der gelöschten Zeilen 1048576 überschreitet, werden sie mit der Löschbitmap durch den Tuple Mover-Thread im Hintergrund oder durch einen expliziten Befehl "Neu anordnen" zusammengeführt. Zu einem bestimmten Zeitpunkt stellt die Vereinigung der Löschbitmap und des Löschpuffers alle gelöschten Zeilen dar.

COLUMN_STORE_MAPPING_INDEX : Wird nur verwendet, wenn der Gruppierte Spaltenspeicherindex einen sekundären nicht gruppierten Index aufweist. Dadurch werden nicht gruppierte Indexschlüssel der richtigen Zeilengruppe und Zeilen-ID im Columnstore zugeordnet. Es speichert nur Schlüssel für Zeilen, die zu einer anderen Zeilengruppe verschoben werden. Dies tritt auf, wenn eine Delta-Zeilengruppe in den Columnstore komprimiert wird und wenn ein Zusammenführungsvorgang Zeilen aus zwei verschiedenen Zeilengruppen zusammenführt.
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 Rowset-Objekts (HoBT). Dies ist ein guter Schlüssel für die Verknüpfung mit anderen DMVs, um weitere Informationen zu den physischen Merkmalen des internen Rowsets zu erhalten.
rows bigint Die ungefähre Anzahl der Zeilen in dieser Partition.
data_compression tinyint Der Zustand der Komprimierung 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 = Partition hat die Optimierung für das Einfügen der letzten Seite aktiviert.

0 = Standardwert. Die Partition hat 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 erstellt bei jeder Erstellung oder Neuerstellung eines Spaltenspeicherindexes neue interne Spaltenspeicherindizes.

Beispiele

A. Alle internen Rowsets für eine Tabelle anzeigen

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 zu dem spezifischen 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