Megosztás a következőn keresztül:


sys.dm_db_partition_stats (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Minden partícióhoz az aktuális adatbázisban oldal- és sorszám információkat ad.

Megjegyzés:

Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_db_partition_stats. A partition_id eltér sys.dm_pdw_nodes_db_partition_stats az Azure Synapse Analytics katalógus nézetében szereplő partition_id-től sys.partitions . Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
partition_id bigint A partíció azonosítója. Ez egyedi az adatbázisban. Ez ugyanaz az érték, mint partition_id a sys.partitions katalógus nézetben, kivéve Azure Synapse Analytics-et.
object_id int A tag vagy indexelt nézet objektumazonosítója, amelynek a partíció része.
index_id int Az a halom vagy index azonosítója, amelynek a partíció része.

0 = Halom
1 = Klaszterelt index.
> 1 = Nemclustered index
partition_number int 1-alapú partíciószám az indexben vagy halomban.
in_row_data_page_count bigint A soros adatok tárolására használt oldalak száma ebben a partícióban. Ha a partíció egy halom része, akkor az érték az adatoldalak száma a halomban. Ha a partíció egy index része, akkor az érték a levél szintjén lévő oldalak száma. (A B+ fa nem leveles oldalai nem szerepelnek a számban.) Az IAM (Index Allocation Map) oldalak egyik esetben sem szerepelnek. Mindig 0 egy xVelocity memóriaoptimalizált oszloptároló indexhez.
in_row_used_page_count bigint A soros adatok tárolására és kezelésére használt oldalak összesen száma ebben a partícióban. Ez a szám tartalmazza a nem leveles B+ fa oldalakat, az IAM oldalakat és az in_row_data_page_count oszlopban szereplő összes oldalt. Mindig 0 egy oszlopáruház indexhez.
in_row_reserved_page_count bigint Az összes oldalszám, amelyet soros adatok tárolására és kezelésére tartanak fenn ezen a partíción, függetlenül attól, hogy az oldalak használatban vannak-e vagy sem. Mindig 0 egy oszlopáruház indexhez.
lob_used_page_count bigint A soron kívüli szöveg, ntext, image, varchar(max), nvarchar(max), varbinary(max) és xml oszlopok tárolására és kezelésére használt oldalak száma a partíción belül. Az IAM oldalak is benne vannak.

A rakódtároló index tárolására és kezelésére használt LOB-ok teljes száma a partíción.
lob_reserved_page_count bigint Az oldal teljes száma, amelyet a soron kívüli szöveg, ntext, image, varchar(max),nvarchar(max), varbinary(max) és xml oszlopok tárolására és kezelésére fenntartanak a partíción belül, függetlenül attól, hogy az oldalak használatban vannak-e vagy sem. Az IAM oldalak is benne vannak.

A rakóraktár index tárolására és kezelésére fenntartott LOB-k teljes száma a partícióban.
row_overflow_used_page_count bigint A sortúlterhelés varchar, nvarchar, varbináris és sql_variant oszlop tárolására és kezelésére használt oldalak száma a partíción belül. Az IAM oldalak is benne vannak.

Mindig 0 egy oszlopáruház indexhez.
row_overflow_reserved_page_count bigint A sortúlterhelés varchar, nvarchar, varbinary és sql_variant oszlopok tárolására és kezelésére fenntartott oldalak teljes száma a partíción belül, függetlenül attól, hogy az oldalak használatban vannak-e vagy sem. Az IAM oldalak is benne vannak.

Mindig 0 egy oszlopáruház indexhez.
used_page_count bigint A partícióhoz használt oldalak teljes száma. Úgy számolva, hogy in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint A partícióra fenntartott összes oldalszám. Úgy számolva, hogy in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint A partícióban lévő sorok közelítő száma.
pdw_node_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.
distribution_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Az eloszláshoz tartozó egyedi numerikus azonosító.

Megjegyzések

A sys.dm_db_partition_stats dinamikus menedzsment nézet (DMV) információkat jelenít meg arról a térről, amelyet soron belüli adat, LOB adatok, valamint sor-túlterhelési adatok tárolására és kezelésére használnak az adatbázis összes partíciójánál. Minden partíciónként egy sor jelenik meg.

A kimenet alapján készült számokat memóriaban tárolják vagy különböző rendszertáblákban tárolják a lemezen.

A sorbeli adatok, LOB adatok és sor-túlterhelés adatok a három allokációs egységet képviselik, amelyek egy partíciót alkotnak. A sys.allocation_units katalógusnézet minden egyes alallokációs egységről metaadatokat kérhet az adatbázisban.

Ha egy halom vagy index nincs partíciózva, akkor egy partícióból áll (a partíciószám = 1); ezért csak egy sor tér vissza az adott halom vagy index. A sys.partitions katalógusnézet minden egyes táblázat és index partíciójáról metaadatokat kérhet.

Az egyes táblázatok vagy indexek teljes száma az összes releváns partíció összeadásával kapható ki.

Permissions

A dinamikus menedzsment nézet lekérdezéséhez szükséges VIEW DATABASE STATE és VIEW DEFINITION jogosultságok sys.dm_db_partition_stats . További információért a dinamikus menedzsment nézetek jogosultságairól lásd a Dinamikus menedzsment nézeteket és funkciókat (Transact-SQL).

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

VIEW DATABASE PERFORMANCE STATE és VIEW SECURITY DEFINITION engedélyeket igényel az adatbázison.

Példák

A. Vissza az összes indexet és halom minden partícióját egy adatbázisban

A következő példa az összes indexet és halom felosztását mutatja az AdventureWorks2025 adatbázisban.

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

B. Visszaadjuk az összes számot egy tábla és annak indexei minden partíciójához

Az alábbi példa a táblázat és indexei minden partíciójának HumanResources.Employee összes számát mutatja.

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

C. Visszaadja az összes használt oldalt és a sorok teljes számát egy halomhoz vagy klaszterezett indexhez

A következő példa adja vissza a HumanResources.Employee használt oldalak összességét és a táblázat halom vagy klaszterelt indexének összes sorszámát. Mivel a Employee tábla alapértelmezés szerint nincs felosztva, fontos megjegyezni, hogy az összeg csak egy partíciót tartalmaz.

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