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.

[!NOTA]

L'oggetto a gestione dinamica, sys.dm_db_stats_properties, è disponibile in SQL Server 2012 a partire dal Service Pack 1 e SQL Server 2008 R2 a partire dal Service Pack 2.

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.

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)

sys.stats (Transact-SQL)

Funzioni e viste a gestione dinamica relative agli oggetti (Transact-SQL)

Funzioni e viste a gestione dinamica (Transact-SQL)