Freigeben über


sys.internal_partitions (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und spätere Versionen Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

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. Das Datenbankmodul erstellt die Rowsets jedes Mal neu, wenn er den Spaltenspeicherindex neu erstellt.

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. Diese Zeilen sind weiterhin physisch vorhanden und belegen Platz im Columnstore.

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 – Zur Aufrechterhaltung von Löschdaten 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 1.048.576 überschreitet, werden sie durch den Tuple Mover-Hintergrundthread oder durch einen ALTER INDEX ... REORGANIZE Vorgang wieder mit der Löschbitmap 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 Columnstore-Index einen sekundären, nicht gruppierten Index aufweist. Dadurch werden nicht gruppierte Indexschlüssel der 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 Seriendruckvorgang 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). Kann in Verknüpfungen mit anderen Systemansichten und Funktionen wie sys.dm_db_index_physical_stats() verwendet werden, 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 Komprimierungstyp für jede Partition:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) Der Komprimierungstyp für jede Partition. Mögliche Werte für Zeilenspeichertabellen sind NONE, ROWund PAGE. Mögliche Werte für Spaltenspeichertabellen sind COLUMNSTORE und COLUMNSTORE_ARCHIVE.

Berechtigungen

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

Bemerkungen

Das Datenbankmodul erstellt jedes Mal, wenn es einen Spaltenspeicherindex erstellt oder neu erstellt, neue interne Spaltenspeicherindizes.

Beispiele

Ein. 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 Spalte verwenden, um mit anderen Systemansichten und -funktionen zu verknüpfen und 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
     INNER JOIN sys.indexes AS i
         ON i.object_id = p.object_id
WHERE p.object_id = OBJECT_ID('<table name>');