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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für