sys.dm_db_partition_stats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Gibt Informationen zu Seiten- und Zeilenzahlen für jede Partition in der aktuellen Datenbank zurück.

Hinweis

Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_db_partition_stats. Die partition_id unterscheidet sich von der partition_id sys.dm_pdw_nodes_db_partition_stats in der sys.partitions Katalogansicht für Azure Synapse Analytics. Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Spaltenname Datentyp BESCHREIBUNG
partition_id bigint Die ID der Partition. Sie ist innerhalb einer Datenbank eindeutig. Dies ist derselbe Wert wie die partition_id in der sys.partitions Katalogansicht mit Ausnahme von Azure Synapse Analytics.
object_id int Objekt-ID der Tabelle oder der indizierten Sicht, in der die Partition enthalten ist.
index_id int ID des Heaps oder Indexes, in dem die Partition enthalten ist.

0 = Heap
1 = Gruppierter Index.
> 1 = Nicht gruppierter Index
partition_number int Auf 1 basierende Partitionsnummer im Index oder Heap.
in_row_data_page_count bigint Anzahl der Seiten, die zum Speichern von Daten innerhalb einer Zeile dieser Partition verwendet werden. Falls die Partition Teil eines Heaps ist, gibt der Wert die Anzahl von Datenseiten im Heap an. Falls die Partition Teil eines Indexes ist, gibt der Wert die Anzahl der Seiten auf Blattebene an. (Innere Seiten in der B+-Struktur werden nicht mitgezählt.) IAM-Seiten (Index Allocation Map) werden in beiden Fällen nicht berücksichtigt. Immer 0 für einen speicheroptimierten xVelocity-columnstore-Index.
in_row_used_page_count bigint Gesamtanzahl der Seiten, die zum Speichern und Verwalten der Daten in Zeilen in dieser Partition verwendet werden. Diese Zahl schließt innere Seiten der B+-Struktur, IAM-Seiten und alle Seiten ein, die in der Spalte in_row_data_page_count enthalten sind. Immer 0 für einen columnstore-Index.
in_row_reserved_page_count bigint Gesamtanzahl der Seiten, die zum Speichern und Verwalten der Daten in Zeilen in dieser Partition reserviert sind, unabhängig davon, ob die Seiten verwendet werden. Immer 0 für einen columnstore-Index.
lob_used_page_count bigint Anzahl der Seiten, die zum Speichern und Verwalten von Spalten vom Typ text, ntext, image, varchar(max), nvarchar(max), varbinary(max) und xml außerhalb von Zeilen in der Partition verwendet werden. IAM-Seiten sind eingeschlossen.

Gesamtzahl von LOBs, die zum Speichern und Verwalten des columnstore-Index in der Partition verwendet werden.
lob_reserved_page_count bigint Gesamtanzahl der Seiten, die zum Speichern und Verwalten von Spalten vom Typ text, ntext, image, varchar(max), nvarchar(max), varbinary(max) und xml außerhalb von Zeilen in der Partition reserviert sind, unabhängig davon, ob die Seiten verwendet werden. IAM-Seiten sind eingeschlossen.

Gesamtzahl von LOBs, die zum Speichern und Verwalten eines columnstore-Index in der Partition reserviert wurden.
row_overflow_used_page_count bigint Anzahl der Seiten, die zum Speichern und Verwalten von Zeilenüberlaufspalten vom Typ varchar, nvarchar, varbinary und sql_variant in der Partition verwendet werden. IAM-Seiten sind eingeschlossen.

Immer 0 für einen columnstore-Index.
row_overflow_reserved_page_count bigint Gesamtanzahl der Seiten, die zum Speichern und Verwalten von Zeilenüberlaufspalten vom Typ varchar, nvarchar, varbinary und sql_variant in der Partition reserviert sind, unabhängig davon, ob die Seiten verwendet werden. IAM-Seiten sind eingeschlossen.

Immer 0 für einen columnstore-Index.
used_page_count bigint Gesamtanzahl der für die Partition verwendeten Seiten. Diese Zahl wird wie folgt berechnet: in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Gesamtanzahl der für die Partition reservierten Seiten. Diese Zahl wird wie folgt berechnet: in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Die ungefähre Anzahl von Zeilen in dieser Partition.
pdw_node_id int Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet.
distribution_id int Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Die eindeutige numerische ID, die der Verteilung zugeordnet ist.

Hinweise

In der sys.dm_db_partition_stats dynamischen Verwaltungsansicht (DYNAMIC Management View, DMV) werden Informationen zum Zum Speichern und Verwalten von Daten in Zeilendaten-BRANCHENdaten sowie Zeilenüberlaufdaten für alle Partitionen in einer Datenbank angezeigt. Es wird eine Zeile pro Partition angezeigt.

Die Anzahl, auf der die Ausgabe basiert, wird im Arbeitsspeicher zwischengespeichert oder auf dem Datenträger in verschiedenen Systemtabellen gespeichert.

In Zeilen gespeicherte Daten, LOB-Daten und Zeilenüberlaufdaten stellen die drei Zuordnungseinheiten dar, aus denen eine Partition besteht. Die sys.allocation_units-Katalogsicht kann für Metadaten zu jeder Zuordnungseinheit in der Datenbank abgefragt werden.

Falls ein Heap oder Index nicht partitioniert ist, besteht er aus einer Partition (mit der Partitionsnummer = 1). Daher wird nur eine Zeile für diesen Heap oder Index zurückgegeben. Die sys.partitions-Katalogsicht kann für Metadaten zu jeder Partition aller Tabellen und Indizes in einer Datenbank abgefragt werden.

Die Gesamtanzahl für eine einzelne Tabelle oder einen Index kann durch das Addieren der Zahlen für alle relevanten Partitionen bestimmt werden.

Berechtigungen

Erfordert VIEW DATABASE STATE und VIEW DEFINITION Berechtigungen zum Abfragen der sys.dm_db_partition_stats dynamischen Verwaltungsansicht. Weitere Informationen zu Berechtigungen für dynamische Verwaltungssichten finden Sie unter Dynamische Verwaltungssichten und -funktionen (Transact-SQL).

Berechtigungen für SQL Server 2022 und höher

Erfordert die Berechtigungen VIEW DATABASE PERFORMANCE STATE und VIEW SECURITY DEFINITION für die Datenbank.

Beispiele

.A Gibt alle Anzahlen für alle Partitionen aller Indizes und Heaps in einer Datenbank zurück.

Im folgenden Beispiel werden alle Zahlen für alle Partitionen aller Indizes und Heaps in der AdventureWorks2022-Datenbank angezeigt.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats;  
GO  

B. Gibt alle Anzahlen für alle Partitionen einer Tabelle und deren Indizes zurück.

Im folgenden Beispiel werden alle Zahlen aller Partitionen der HumanResources.Employee-Tabelle und ihrer Indizes angezeigt.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats   
WHERE object_id = OBJECT_ID('HumanResources.Employee');  
GO  

C. Zurückgeben der Gesamtanzahl der verwendeten Seiten und der Gesamtzahl der Zeilen für einen Heap oder gruppierten Index

Im folgenden Beispiel werden Angaben zu den insgesamt verwendeten Seiten und zur Gesamtanzahl der Zeilen für den Heap oder gruppierten Index der HumanResources.Employee-Tabelle zurückgegeben. Da die Employee-Tabelle standardmäßig nicht partitioniert ist, umfasst die Summe nur eine Partition.

USE AdventureWorks2022;  
GO  
SELECT SUM(used_page_count) AS total_number_of_used_pages,   
    SUM (row_count) AS total_number_of_rows   
FROM sys.dm_db_partition_stats  
WHERE object_id=OBJECT_ID('HumanResources.Employee')    AND (index_id=0 or index_id=1);  
GO