sys.internal_partitions (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
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