Condividi tramite


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)

sys.stats (Transact-SQL)

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

Funzioni e viste a gestione dinamica (Transact-SQL)