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