sys.dm_db_partition_stats (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

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

Nota

Per chiamare il metodo da Azure Synapse Analytics o Piattaforma di strumenti analitici (PDW), usare il nome sys.dm_pdw_nodes_db_partition_stats. Il partition_id in sys.dm_pdw_nodes_db_partition_stats è diverso dal partition_id nella vista del catalogo sys.partitions 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. Si tratta dello stesso valore del partition_id nella vista del catalogo sys.partitions , 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 diaf 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 le pagine dell'albero B+ non successive, le pagine IAM e tutte le pagine incluse nella in_row_data_page_count colonna. 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 utilizzate per l'archiviazione e la gestione delle colonne all'esterno di righe di tipo text, ntext, image, varchar(max), nvarchar(max), varbinary(max) e xml nella 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 delle colonne all'esterno di righe di tipo text, ntext, image, varchar(max), nvarchar(max), varbinary(max) e xml nella partizione, indipendentemente dal fatto che le pagine vengano utilizzate 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 utilizzate per l'archiviazione e la gestione delle colonne di overflow della riga di tipo varchar, nvarchar, varbinary e sql_variant nella 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 delle colonne di overflow della riga di tipo varchar, nvarchar, varbinary e sql_variant nella partizione, indipendentemente dal fatto che le pagine vengano utilizzate 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 in_row_used_page_count + lob_used_page_count + row_overflow_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 strumenti analitici (PDW)

Identificatore del nodo in cui si trova la distribuzione.
distribution_id int Si applica a: Azure Synapse Analytics, Piattaforma di strumenti analitici (PDW)

ID numerico univoco associato alla distribuzione.

Commenti

sys.dm_db_partition_stats visualizza informazioni sullo spazio utilizzato per archiviare e gestire i dati LOB all'interno delle righe 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 inseriti nella cache in memoria oppure 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

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

Esempi

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

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

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

B. Restituzione di 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 AdventureWorks2012;  
GO  
SELECT * FROM sys.dm_db_partition_stats   
WHERE object_id = OBJECT_ID('HumanResources.Employee');  
GO  

C. Restituzione del numero totale di pagine utilizzate e del 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 AdventureWorks2012;  
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  

Vedere anche

Funzioni e viste a gestione dinamica (Transact-SQL)
Viste a gestione dinamica correlate al database (Transact-SQL)