sys.dm_db_partition_stats (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar sid- och radräkningsinformation för varje partition i den aktuella databasen.

Anmärkning

Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_db_partition_stats. Den partition_id i sys.dm_pdw_nodes_db_partition_stats skiljer sig från partition_id i sys.partitions katalogvyn för Azure Synapse Analytics. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
partition_id bigint ID för partitionen. Detta är unikt i en databas. Detta är samma värde som partition_id i sys.partitions katalogvyn, förutom Azure Synapse Analytics.
object_id int Objekt-ID för tabellen eller den indexerade vyn som partitionen ingår i.
index_id int ID för heapen eller indexet som partitionen ingår i.

0 = Heap
1 = Klustrat index.
> 1 = Icke-grupperat index
partition_number int 1-baserat partitionsnummer i indexet eller heapen.
in_row_data_page_count bigint Antal sidor som används för att lagra raddata i denna partition. Om partitionen är en del av en heap är värdet antalet datasidor i heapen. Om partitionen är en del av ett index är värdet antalet sidor på bladnivå. (Icke-bladiga sidor i B+-trädet ingår inte i räkningen.) IAM (Index Allocation Map)-sidor ingår inte i något av fallen. Alltid 0 för ett xVelocity-minnesoptimerat kolumnlagringsindex.
in_row_used_page_count bigint Totalt antal sidor som används för att lagra och hantera raddata i denna partition. Denna räkning inkluderar icke-bladiga B+ trädsidor, IAM-sidor och alla sidor som ingår i kolumnen in_row_data_page_count . Alltid 0 för ett kolumnstore-index.
in_row_reserved_page_count bigint Totalt antal sidor reserverade för lagring och hantering av raddata i denna partition, oavsett om sidorna används eller inte. Alltid 0 för ett kolumnstore-index.
lob_used_page_count bigint Antal sidor som används för att lagra och hantera text utanför raden, ntext, bild, varchar(max),nvarchar(max),varbinary(max) och xml-kolumner inom partitionen. IAM-sidor ingår.

Totalt antal LOB:er som används för att lagra och hantera kolumnlagringsindex i partitionen.
lob_reserved_page_count bigint Totalt antal sidor reserverade för lagring och hantering av text, ntext, bild, varchar(max),nvarchar(max), varbinary(max) och xml-kolumner inom partitionen, oavsett om sidorna används eller inte. IAM-sidor ingår.

Totalt antal LOB:er reserverade för lagring och hantering av ett kolumnlagringsindex i partitionen.
row_overflow_used_page_count bigint Antal sidor som används för att lagra och hantera radöverflöd varchar, nvarchar, varbinär och sql_variant kolumner inom partitionen. IAM-sidor ingår.

Alltid 0 för ett kolumnstore-index.
row_overflow_reserved_page_count bigint Totalt antal sidor reserverade för lagring och hantering av radöverskridande varchar, nvarchar, varbinär och sql_variant kolumner inom partitionen, oavsett om sidorna används eller inte. IAM-sidor ingår.

Alltid 0 för ett kolumnstore-index.
used_page_count bigint Totalt antal sidor som används för partitionen. Beräknat som in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Totalt antal sidor reserverade för partitionen. Beräknat som in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Det ungefärliga antalet rader i partitionen.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.
distribution_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Det unika numeriska ID:t som är kopplat till fördelningen.

Anmärkningar

Den dynamiska sys.dm_db_partition_stats hanteringsvyn (DMV) visar information om det utrymme som används för att lagra och hantera raddata, LOB-data och radöverflödesdata för alla partitioner i en databas. En rad visas per partition.

De räkningar som utgången baseras på är cachade i minnet eller lagras på disk i olika systemtabeller.

In-row-data, LOB-data och row-overflow-data representerar de tre allokeringsenheter som utgör en partition. Den sys.allocation_units katalogvyn kan efterfrågas för metadata om varje allokeringsenhet i databasen.

Om en heap eller index inte är partitionerad, består den av en partition (med partitionsnummer = 1); därför returneras endast en rad för den heapen eller indexet. Sys.partitions-katalogvyn kan efterfrågas för metadata om varje partition i alla tabeller och index i en databas.

Det totala antalet för en enskild tabell eller ett index kan erhållas genom att addera räkningarna för alla relevanta partitioner.

Permissions

Kräver VIEW DATABASE STATE och VIEW DEFINITION behörigheter för att fråga den dynamiska sys.dm_db_partition_stats hanteringsvyn. För mer information om behörigheter för dynamiska hanteringsvyer, se Dynamiska hanteringsvyer och funktioner (Transact-SQL).

Behörigheter för SQL Server 2022 och senare

Kräver behörigheter VIEW DATABASE PERFORMANCE STATE och VIEW SECURITY DEFINITION.

Examples

A. Returnera alla räkningar för alla partitioner av alla index och heaps i en databas

Följande exempel visar alla räkningar för alla partitioner av alla index och heaps i AdventureWorks2025-databasen.

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

B. Returnera alla räkningar för alla partitioner av en tabell och dess index

Följande exempel visar alla räkningar för alla partitioner av HumanResources.Employee tabellen och dess index.

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

C. Returnera totalt antal använda sidor och totalt antal rader för ett heap- eller klustrat index

Följande exempel visar totalt antal använda sidor och totalt antal rader för heapen eller det klustrade indexet i tabellen HumanResources.Employee . Eftersom Employee tabellen inte är partitionerad som standard, observera att summan endast inkluderar en 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