Condividi tramite


sys.dm_db_partition_stats (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Restituisce informazioni relative al conteggio di pagine e righe per ogni partizione nel database corrente.

Nota

Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_db_partition_stats. Il partition_id in sys.dm_pdw_nodes_db_partition_stats differisce dal partition_id nella vista del sys.partitions catalogo per Azure Synapse Analytics. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

Nome colonna Tipo di dati Descrizione
partition_id bigint ID della partizione. Valore univoco all'interno di un database. Questo è lo stesso valore di partition_id nella vista del sys.partitions catalogo, ad eccezione di Azure Synapse Analytics.
object_id int ID oggetto della tabella o della vista indicizzata a cui appartiene la partizione.
index_id int ID dell'heap o dell'indice a cui appartiene la partizione.

0 = heap
1 = Indice cluster
> 1 = Indice non cluster
partition_number int Numero di partizione in base 1 all'interno dell'indice o heap.
in_row_data_page_count bigint Numero di pagine utilizzate per l'archiviazione di dati all'interno di righe nella partizione specifica. Se la partizione è inclusa in un heap, il valore corrisponde al numero di pagine di dati nell'heap. Se la partizione è inclusa in un indice, il valore corrisponde al numero di pagine nel livello foglia. Le pagine non foglia nell'albero B+ non sono incluse nel conteggio. Le pagine IAM (Index Allocation Map) non sono incluse in entrambi i casi. Sempre 0 per un indice columnstore con ottimizzazione per la memoria xVelocity.
in_row_used_page_count bigint Numero totale di pagine utilizzate per archiviare e gestire i dati all'interno di righe nella partizione corrente. Questo conteggio include pagine ad albero B+ nonaf, pagine IAM e tutte le pagine incluse nella colonna in_row_data_page_count . Sempre 0 per un indice columnstore.
in_row_reserved_page_count bigint Numero totale di pagine riservate per l'archiviazione e la gestione dei dati all'interno di righe nella partizione corrente, indipendentemente dal fatto che le pagine siano utilizzate o meno. Sempre 0 per un indice columnstore.
lob_used_page_count bigint Numero di pagine in uso per l'archiviazione e la gestione di testo fuori riga, ntext, image, varchar(max), nvarchar(max), varbinary(max)e colonne xml all'interno della partizione. Le pagine IAM sono incluse.

Numero totale di oggetti LOB utilizzati per archiviare e gestire un indice columnstore nella partizione.
lob_reserved_page_count bigint Numero totale di pagine riservate per l'archiviazione e la gestione di testo fuori riga, ntext, image, varchar(max), nvarchar(max), varbinary(max)e xml all'interno della partizione, indipendentemente dal fatto che le pagine siano in uso o meno. Le pagine IAM sono incluse.

Numero totale di oggetti LOB riservati per l'archiviazione e la gestione di un indice columnstore nella partizione.
row_overflow_used_page_count bigint Numero di pagine in uso per l'archiviazione e la gestione di righe-overflow varchar, nvarchar, varbinary e sql_variant colonne all'interno della partizione. Le pagine IAM sono incluse.

Sempre 0 per un indice columnstore.
row_overflow_reserved_page_count bigint Numero totale di pagine riservate per l'archiviazione e la gestione di righe-overflow varchar, nvarchar, varbinary e sql_variant colonne all'interno della partizione, indipendentemente dal fatto che le pagine siano in uso o meno. Le pagine IAM sono incluse.

Sempre 0 per un indice columnstore.
used_page_count bigint Numero totale di pagine utilizzate per la partizione, Calcolato come row_overflow_used_page_count lob_used_page_count + di in_row_used_page_count. +
reserved_page_count bigint Numero totale di pagine riservate per la partizione Calcolato come in_row_reserved_page_count + lob_reserved_page_count row_overflow_reserved_page_count. +
row_count bigint Numero approssimato di righe nella partizione.
pdw_node_id int Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW)

Identificatore del nodo in cui è attiva la distribuzione.
distribution_id int Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW)

ID numerico univoco associato alla distribuzione.

Osservazioni:

La sys.dm_db_partition_stats dmv (Dynamic Management View) visualizza informazioni sullo spazio usato per archiviare e gestire i dati LOB dei dati in riga e i dati di overflow delle righe per tutte le partizioni in un database. Viene visualizzata una riga per partizione.

I conteggi su cui si basa l'output vengono memorizzati nella cache o archiviati su disco in varie tabelle di sistema.

I dati all'interno di righe, i dati LOB e i dati di overflow della riga rappresentano tre unità di allocazione che compongono una partizione. È possibile eseguire una query sulla vista del catalogo sys.allocation_units per rilevare i metadati su ciascuna unità di allocazione nel database.

Se un heap o un indice non è partizionato, esso è composto da una partizione (con numero di partizione = 1). Per tale heap o indice viene pertanto restituita solo una riga. È possibile eseguire una query sulla vista del catalogo sys.partitions per rilevare i metadati su ciascuna partizione di tutte le tabelle e tutti gli indici in un database.

Il conteggio totale relativo a una tabella specifica o un indice specifico può essere ottenuto tramite l'aggiunta dei conteggi per tutte le partizioni rilevanti.

Autorizzazioni

Richiede VIEW DATABASE STATE le autorizzazioni e VIEW DEFINITION per eseguire query sulla vista a sys.dm_db_partition_stats gestione dinamica. Per altre informazioni sulle autorizzazioni per le viste a gestione dinamica, vedere Funzioni e viste a gestione dinamica (Transact-SQL).

Autorizzazioni per SQL Server 2022 e versioni successive

Sono necessarie le autorizzazioni VIEW DATABASE PERFORMANCE STATE e VIEW SECURITY DEFINITION per il database.

Esempi

R. Restituisce tutti i conteggi per tutte le partizioni di tutti gli indici e gli heap in un database

Nell'esempio seguente vengono illustrati tutti i conteggi per tutte le partizioni di tutti gli indici e gli heap nel database AdventureWorks2022.

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

B. Restituisce tutti i conteggi per tutte le partizioni di una tabella e dei relativi indici

Nell'esempio seguente vengono visualizzati tutti i conteggi per tutte le partizioni della tabella HumanResources.Employee e dei relativi indici.

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

C. Restituisce le pagine usate totali e il numero totale di righe per un heap o un indice cluster

Nell'esempio seguente vengono restituiti il numero totale di pagine utilizzate e il numero totale di righe per l'heap o l'indice cluster della tabella HumanResources.Employee. Poiché per impostazione predefinita la tabella Employee non è partizionata, la somma include solo una partizione.

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