sys.dm_db_partition_stats (Transact-SQL)
Restituisce informazioni relative al conteggio di pagine e righe per ogni partizione nel database corrente.
Si applica a: SQL Server (SQL Server 2008 tramite versione corrente), Database SQL di Windows Azure (versione iniziale tramite versione corrente). |
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
partition_id |
bigint |
ID della partizione. Valore univoco all'interno di un database. Corrisponde allo stesso valore di partition_id nella vista del catalogo sys.partitions. |
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. Nel conteggio non sono incluse le pagine non foglia nell'albero B. 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 non foglia dell'albero B, 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 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. |
Osservazioni
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
È richiesta l'autorizzazione VIEW DATABASE STATE per eseguire query sulla vista a gestione dinamica sys.dm_db_partition_stats. Per ulteriori informazioni sulle autorizzazioni per le viste a gestione dinamica, vedere Funzioni e viste a gestione dinamica (Transact-SQL).
Esempi
A.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
Riferimento
Funzioni e viste a gestione dinamica (Transact-SQL)
Viste a gestione dinamica relative ai database (Transact-SQL)