Sdílet prostřednictvím


sys.dm_db_partition_stats (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrací informace o stránce a počtu řádků pro každou oddíl v aktuální databázi.

Poznámka:

K volání z Azure Synapse Analytics nebo systému PDW (Analytics Platform System) použijte název sys.dm_pdw_nodes_db_partition_stats. partition_id v sys.dm_pdw_nodes_db_partition_stats se liší od partition_id v sys.partitions katalogovém zobrazení Azure Synapse Analytics. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Název sloupce Datový typ Description
partition_id bigint ID partition. To je jedinečné v rámci databáze. Je to stejná hodnota jako v partition_idsys.partitions katalogovém pohledu, kromě Azure Synapse Analytics.
object_id int ID objektu tabulky nebo indexovaného pohledu, jehož je partition součástí.
index_id int ID haldy nebo indexu, jehož je oddíl součástí.

0 = halda
1 = Shlukový index.
> 1 = neclusterovaný index
partition_number int Číslo oddílu založené na 1 v indexu nebo haldě.
in_row_data_page_count bigint Počet stránek používaných pro ukládání dat v řádku v této partition. Pokud je partition součástí haldy, hodnota je počet datových stránek v haldě. Pokud je partition součástí indexu, hodnota je počet stran na úrovni listu. (Nelistové stránky ve stromu B+ nejsou do počtu zahrnuty.) Stránky IAM (Index Allocation Map) nejsou v žádném případě zahrnuty. Vždy 0 pro index, který je optimalizován pro paměť xVelocity.
in_row_used_page_count bigint Celkový počet stránek používaných pro ukládání a správu dat v řádku v této části. Tento počet zahrnuje ne-listové B+ stromové stránky, IAM stránky a všechny stránky zahrnuté ve sloupci in_row_data_page_count . Vždy 0 pro index columnstore.
in_row_reserved_page_count bigint Celkový počet stránek vyhrazených pro ukládání a správu dat v řádku v této partition, bez ohledu na to, zda jsou stránky používány či nikoliv. Vždy 0 pro index columnstore.
lob_used_page_count bigint Počet stránek používaných pro ukládání a správu textu mimo řádky, ntextu, image, varchar(max),nvarchar(max), varbinary(max)a xml sloupců v rámci partition. Stránky IAM jsou zahrnuty.

Celkový počet LOB používaných k ukládání a správě indexu columnstore v partition.
lob_reserved_page_count bigint Celkový počet stránek vyhrazených pro ukládání a správu textu mimo řádky, ntextu, obrázků, varchar(max),nvarchar(max), varbinary(max) a xml sloupců v rámci partition, bez ohledu na to, zda jsou stránky používány či nikoliv. Stránky IAM jsou zahrnuty.

Celkový počet LOB vyhrazených pro ukládání a správu indexu columnstore v partition.
row_overflow_used_page_count bigint Počet stránek používaných pro ukládání a správu řádků přetečených varchar, nvarchar, varbinary a sql_variant sloupců v rámci partition. Stránky IAM jsou zahrnuty.

Vždy 0 pro index columnstore.
row_overflow_reserved_page_count bigint Celkový počet stránek vyhrazených pro ukládání a správu řádkových přetečených sloupců varchar, nvarchar, varbinary a sql_variant sloupců v rámci partition, bez ohledu na to, zda jsou stránky používány či nikoliv. Stránky IAM jsou zahrnuty.

Vždy 0 pro index columnstore.
used_page_count bigint Celkový počet stran použitých pro rozdělení. Vypočteno jako in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Celkový počet stránek vyhrazených pro tento oddíl. Vypočteno jako in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Přibližný počet řádků v rozkladu.
pdw_node_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.
distribution_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Jedinečné číselné ID spojené s distribucí.

Poznámky

Dynamický sys.dm_db_partition_stats pohled správy (DMV) zobrazuje informace o prostoru používaném pro ukládání a správu datových LOB dat v řádku a o datech přetečení řádků pro všechny oddíly v databázi. Na každou partition se zobrazí jeden řádek.

Počty, na kterých jsou výstupy založeny, jsou uloženy v paměti nebo na disku v různých systémových tabulkách.

Data v řádku, data LOB a data přetečení řádků představují tři alokační jednotky, které tvoří partition. Zobrazení sys.allocation_units katalogu lze dotazovat na metadata o každé alokační jednotce v databázi.

Pokud halda nebo index není rozdělen, skládá se z jednoho oddílu (s číslem oddílu = 1); proto se pro danou haldu nebo index vrací pouze jeden řádek. Katalogový pohled sys.partitions lze dotazovat na metadata o každé partition všech tabulek a indexů v databázi.

Celkový počet pro jednotlivou tabulku nebo index lze získat sečtením počtu pro všechny relevantní rozklady.

Povolení

Vyžaduje VIEW DATABASE STATE a oprávnění VIEW DEFINITION pro dotazování v sys.dm_db_partition_stats dynamickém režimu správy. Pro více informací o oprávněních v dynamických správcovských pohledech viz Dynamické řídicí pohledy a funkce (Transact-SQL).

Oprávnění pro SQL Server 2022 a novější

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU DATABÁZE a ZOBRAZIT DEFINICI BEZPEČNOSTI v databázi.

Examples

A. Vraťte všechny počty pro všechny oddíly všech indexů a hald v databázi

Následující příklad ukazuje všechny počty pro všechny oddíly všech indexů a hald v databázi AdventureWorks2025.

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

B. Vraťte všechny počty pro všechny oddíly tabulky a jejích indexů

Následující příklad ukazuje všechny počty pro všechny rozklady tabulky HumanResources.Employee a jejích indexů.

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

C. Vraťte celkový počet použitých stránek a celkový počet řádků pro haldový nebo shlukovaný index

Následující příklad vrací celkový počet použitých stránek a celkový počet řádků pro haldový nebo shlukovaný index tabulky HumanResources.Employee . Protože tabulka Employee není ve výchozím nastavení rozdělena, všimněte si, že součet zahrnuje pouze jednu partici.

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