Delen via


sys.dm_db_partition_stats (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft pagina- en rijentelling-informatie terug voor elke partitie in de huidige database.

Opmerking

Gebruik de naam sys.dm_pdw_nodes_db_partition_statsom dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW). De partition_id in sys.dm_pdw_nodes_db_partition_stats verschilt van de partition_id in de sys.partitions catalogusweergave voor Azure Synapse Analytics. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Description
partition_id bigint ID van de partitie. Dit is uniek in een database. Dit is dezelfde waarde als in partition_id de sys.partitions catalogusweergave, behalve voor Azure Synapse Analytics.
object_id int Object-ID van de tabel of geïndexeerde weergave waarvan de partitie deel uitmaakt.
index_id int ID van de heap of index waarvan de partitie deel uitmaakt.

0 = Heap
1 = Geclusterde index.
> 1 = Niet-geclusterde index
partition_number int Partitienummer op basis van 1 in de index of heap.
in_row_data_page_count bigint Aantal pagina's dat wordt gebruikt voor het opslaan van in-row gegevens in deze partitie. Als de partitie deel uitmaakt van een heap, is de waarde het aantal datapagina's in de heap. Als de partitie deel uitmaakt van een index, is de waarde het aantal pagina's op bladniveau. (Niet-bladige pagina's in de B+-boom zijn niet inbegrepen in de telling.) IAM (Index Allocation Map) pagina's zijn in beide gevallen niet inbegrepen. Altijd 0 voor een xVelocity-geheugengeoptimaliseerde columnstore-index.
in_row_used_page_count bigint Totaal aantal pagina's dat wordt gebruikt om de in-row data in deze partitie op te slaan en te beheren. Deze telling omvat niet-blad B+ boompagina's, IAM-pagina's en alle pagina's die in de kolom in_row_data_page_count zijn opgenomen. Altijd 0 voor een columnstore-index.
in_row_reserved_page_count bigint Totaal aantal pagina's dat is gereserveerd voor het opslaan en beheren van in-rij data in deze partitie, ongeacht of de pagina's in gebruik zijn of niet. Altijd 0 voor een columnstore-index.
lob_used_page_count bigint Aantal pagina's dat wordt gebruikt voor het opslaan en beheren van out-of-row tekst, ntext, afbeelding, varchar(max),nvarchar(max),varbinary(max) en xml-kolommen binnen de partitie. IAM-pagina's zijn inbegrepen.

Totaal aantal LOB's dat wordt gebruikt om columnstore-index in de partitie op te slaan en te beheren.
lob_reserved_page_count bigint Totaal aantal pagina's gereserveerd voor het opslaan en beheren van teksten buiten de rij, ntext, afbeelding, varchar(max),nvarchar(max), varbinary(max) en xml-kolommen binnen de partitie, ongeacht of de pagina's in gebruik zijn of niet. IAM-pagina's zijn inbegrepen.

Totaal aantal LOB's dat is gereserveerd voor het opslaan en beheren van een columnstore-index in de partitie.
row_overflow_used_page_count bigint Aantal pagina's dat wordt gebruikt voor het opslaan en beheren van rij-overloop varchar, nvarchar, varbinary en sql_variant kolommen binnen de partitie. IAM-pagina's zijn inbegrepen.

Altijd 0 voor een columnstore-index.
row_overflow_reserved_page_count bigint Totaal aantal pagina's gereserveerd voor het opslaan en beheren van rij-overflow varchar, nvarchar, varbinary en sql_variant kolommen binnen de partitie, ongeacht of de pagina's in gebruik zijn of niet. IAM-pagina's zijn inbegrepen.

Altijd 0 voor een columnstore-index.
used_page_count bigint Totaal aantal pagina's dat voor de partitie wordt gebruikt. Berekend als in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Totaal aantal pagina's gereserveerd voor de partitie. Berekend als in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Het geschatte aantal rijen in de partitie.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.
distribution_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De unieke numerieke ID die bij de distributie hoort.

Opmerkingen

De sys.dm_db_partition_stats dynamische beheerweergave (DMV) toont informatie over de ruimte die wordt gebruikt om in-row data, LOB-data en row-overflow-data voor alle partities in een database op te slaan en te beheren. Per partitie wordt één rij weergegeven.

De tellingen waarop de uitvoer is gebaseerd, worden in het geheugen opgeslagen of opgeslagen op schijf in verschillende systeemtabellen.

In-row data, LOB-data en row-overflow-data vertegenwoordigen de drie allocatie-eenheden die een partitie vormen. De catalogusweergave van de sys.allocation_units kan worden opgezocht voor metadata over elke allocatie-eenheid in de database.

Als een heap of index niet is gepartitioneerd, bestaat deze uit één partitie (met partitienummer = 1); daarom wordt slechts één rij teruggegeven voor die heap of index. De sys.partitions-catalogusweergave kan worden opgezocht voor metadata over elke partitie van alle tabellen en indexen in een database.

Het totale aantal voor een individuele tabel of index kan worden verkregen door de tellingen voor alle relevante partities op te tellen.

Permissions

Vereist VIEW DATABASE STATE en VIEW DEFINITION permissies om de sys.dm_db_partition_stats dynamische beheerweergave te bevragen. Voor meer informatie over machtigingen op dynamische beheerweergaven, zie Dynamische Beheerweergaven en -functies (Transact-SQL).

Machtigingen voor SQL Server 2022 en hoger

Vereist VIEW DATABASE PERFORMANCE STATE en VIEW SECURITY DEFINITION-rechten op de database.

Voorbeelden

Eén. Geef alle tellingen terug voor alle partities van alle indexen en heaps in een database

Het volgende voorbeeld toont alle tellingen voor alle partities van alle indexen en heaps in de AdventureWorks2025-database.

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

B. Geef alle tellingen terug voor alle partities van een tabel en haar indexen

Het volgende voorbeeld toont alle tellingen voor alle partities van de HumanResources.Employee tabel en haar indexen.

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

C. Geef het totaal aantal gebruikte pagina's en het totale aantal rijen terug voor een heap- of geclusterde index

Het volgende voorbeeld geeft het totale aantal gebruikte pagina's en het totale aantal rijen voor de heap- of geclusterde index van de HumanResources.Employee tabel terug. Omdat de Employee tabel standaard niet gepartitioneerd is, is er rekening mee dat de som slechts één partitie bevat.

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