sys.dm_db_partition_stats (Transact-SQL)
Gibt Informationen zu Seiten- und Zeilenzahlen für jede Partition in der aktuellen Datenbank zurück.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
partition_id |
bigint |
Die ID der Partition. Sie ist innerhalb einer Datenbank eindeutig. Dieser Wert ist identisch mit dem partition_id-Wert in der sys.partitions-Katalogsicht. |
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. |
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. (Seiten des inneren Blattes in der B-Struktur sind in der Zählung nicht enthalten.) IAM-Seiten (Index Allocation Map) sind in beiden Fällen nicht enthalten. |
in_row_used_page_count |
bigint |
Gesamtanzahl der Seiten, die zum Speichern und Verwalten der Daten in Zeilen in dieser Partition verwendet werden. Die Zahl schließt Seiten des inneren Blattes in der B-Struktur, IAM-Seiten und alle Seiten ein, die in der in_row_data_page_count-Spalte enthalten sind. |
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. |
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. |
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. |
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. |
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. |
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 |
Anzahl der Zeilen in der Partition. |
Hinweise
sys.dm_db_partition_stats zeigt Informationen zu dem Bereich an, der zum Speichern und Verwalten von LOB-Daten in Zeilen und von Zeilenüberlaufdaten für alle Partitionen in einer Datenbank verwendet wird. Es wird eine Zeile pro Partition angezeigt.
Die Zahlen, auf denen die Ausgabe basiert, werden im Arbeitsspeicher zwischengespeichert oder auf einem Datenträger in unterschiedlichen Systemtabellen gespeichert.
In Zeilen gespeicherte Daten, LOB-Daten und Zeilenüberlaufdaten stellen die drei Zuordnungseinheiten dar, aus denen eine Partition besteht. Weitere Informationen zu Zuordnungseinheiten finden Sie unter Organisationsstruktur von Tabellen und Indizes. 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. Weitere Informationen zu Partitionen finden Sie unter Organisationsstruktur von Tabellen und Indizes. 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 die VIEW DATABASE STATE-Berechtigung zum Abfragen der dynamischen Verwaltungssicht sys.dm_db_partition_stats. Weitere Informationen zu Berechtigungen für dynamische Verwaltungssichten finden Sie unter Dynamische Verwaltungssichten und Funktionen (Transact-SQL).
Beispiele
A. Zurückgeben aller Zahlen für alle Partitionen von allen Indizes und Heaps in einer Datenbank
Im folgenden Beispiel werden alle Zahlen für alle Partitionen von allen Indizes und Heaps in der AdventureWorks-Datenbank angezeigt.
USE AdventureWorks;
GO
SELECT * FROM sys.dm_db_partition_stats;
GO
B. Zurückgeben aller Zahlen für alle Partitionen einer Tabelle und ihrer Indizes
Im folgenden Beispiel werden alle Zahlen aller Partitionen der HumanResources.Employee-Tabelle und ihrer Indizes angezeigt.
USE AdventureWorks;
GO
SELECT * FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO
C. Zurückgeben der insgesamt verwendeten Seiten und der Gesamtanzahl 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 AdventureWorks;
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