sys.dm_db_stats_properties (Transact-SQL)
Vengono restituite le proprietà di statistiche per l'oggetto di database specificato (tabella o vista indicizzata) nel database di SQL Server corrente.
Si applica a: SQL Server (SQL Server 2008 R2 Service Pack 2, SQL Server 2012 Service Pack 1 tramite versione corrente). |
Sintassi
sys.dm_db_stats_properties (object_id, stats_id)
Argomenti
object_id
ID dell'oggetto nel database corrente per il quale sono richieste le proprietà di una delle relative statistiche. object_id è di tipo int.stats_id
ID delle statistiche per l'oggetto object_id specificato. L'ID delle statistiche può essere ottenuto dalla DMV sys.stats. stats_id è di tipo int.
Tabella restituita
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
object_id |
int |
ID dell'oggetto (tabella o vista indicizzata) per cui restituire le proprietà dell'oggetto statistiche. |
stats_id |
int |
ID dell'oggetto statistiche. Univoco all'interno della tabella o della vista indicizzata. Per ulteriori informazioni, vedere sys.stats (Transact-SQL). |
last_updated |
datetime2 |
Data e ora dell'ultimo aggiornamento dell'oggetto statistiche. |
rows |
bigint |
Numero totale di righe della tabella o della vista indicizzata al momento dell'ultimo aggiornamento delle statistiche. Se le statistiche vengono filtrate o corrispondono a un indice filtrato, il numero di righe potrebbe essere inferiore al numero di righe della tabella. |
rows_sampled |
bigint |
Numero totale di righe campionate per i calcoli statistici. |
steps |
int |
Numero di intervalli nell'istogramma. Per ulteriori informazioni, vedere DBCC SHOW_STATISTICS (Transact-SQL). |
unfiltered_rows |
bigint |
Numero totale di righe nella tabella prima dell'applicazione dell'espressione di filtro (per statistiche filtrate). Se le statistiche non vengono filtrate, unfiltered_rows corrisponde al valore restituito nella colonna rows. |
modification_counter |
bigint |
Numero totale di modifiche per la colonna iniziale delle statistiche, la colonna in cui viene compilato l'istogramma, dall'ultimo aggiornamento delle statistiche. Questa colonna non contiene informazioni per le tabelle con ottimizzazione per la memoria. |
Osservazioni
Tramite sys.dm_db_stats_properties viene restituito un set di righe vuoto in una delle condizioni seguenti:
object_id o stats_id è NULL.
L'oggetto specificato non viene trovato oppure non corrisponde a una tabella o a una vista indicizzata.
L'ID delle statistiche specificato non corrisponde alle statistiche esistenti per l'ID oggetto specificato.
L'utente corrente non dispone delle autorizzazioni per visualizzare l'oggetto statistiche.
Questo comportamento consente l'utilizzo sicuro di sys.dm_db_stats_properties in caso di applicazione incrociata in viste quali sys.objects e sys.stats.
Autorizzazioni
L'utente deve avere autorizzazioni di selezione per le colonne delle statistiche o essere proprietario della tabella o membro del ruolo predefinito del server sysadmin, del ruolo predefinito del database db_owner o del ruolo predefinito del database db_ddladmin.
Esempi
A.Restituzione di tutte le proprietà di statistiche per una tabella
Nell'esempio seguente vengono restituite le proprietà di tutte le statistiche esistenti per la tabella TEST.
SELECT
sp.stats_id, name, filter_definition, last_updated, rows, rows_sampled, steps, unfiltered_rows, modification_counter
FROM sys.stats AS stat
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE stat.object_id = object_id('TEST');
B.Restituzione delle proprietà di statistiche per oggetti modificati di frequente
Nell'esempio seguente vengono restituite tutte le tabelle, le viste indicizzate e le statistiche nel database corrente per cui la colonna iniziale è stata modificata più di 1000 volte dall'ultimo aggiornamento delle statistiche.
SELECT
obj.name, obj.object_id, stat.name, stat.stats_id, last_updated, modification_counter
FROM sys.objects AS obj
JOIN sys.stats stat ON stat.object_id = obj.object_id
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE modification_counter > 1000;
Vedere anche
Riferimento
DBCC SHOW_STATISTICS (Transact-SQL)
Funzioni e viste a gestione dinamica relative agli oggetti (Transact-SQL)