Condividi tramite


sys.dm_db_missing_index_group_stats (Transact-SQL)

Restituisce informazioni di riepilogo su gruppi di indici mancanti, escludendo gli indici spaziali.

Nome colonna

Tipo di dati

Descrizione

group_handle

int

Identifica un gruppo di indici mancanti. Questo identificatore è univoco a livello di server.

Le altre colonne contengono informazioni su tutte le query per cui l'indice del gruppo viene considerati mancante.

Un gruppo di indici contiene un solo indice.

unique_compiles

bigint

Numero di compilazioni e ricompilazioni per cui può essere utile questo gruppo di indici mancanti. Il valore di questa colonna può essere determinato dalle compilazioni e ricompilazioni di numerose query diverse.

user_seeks

bigint

Numero di operazioni Seek causate da query utente per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

user_scans

bigint

Numero di scansioni causate da query utente per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

last_user_seek

datetime

Data e ora dell'ultima operazione Seek causata da query utente per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

last_user_scan

datetime

Data e ora dell'ultima scansione causata da query utente per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

avg_total_user_cost

float

Costo medio delle query utente che potrebbe essere ridotto dall'indice del gruppo.

avg_user_impact

float

Vantaggio percentuale medio che potrebbe essere garantito alle query utente con l'implementazione del gruppo di indici mancanti. Questo valore indica la percentuale di riduzione media del costo delle query in caso di implementazione del gruppo di indici mancanti.

system_seeks

bigint

Numero di operazioni Seek causate da query di sistema, ad esempio query su statistiche automatiche, per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo. Per ulteriori informazioni, vedere Classe di evento Auto Stats.

system_scans

bigint

Numero di scansioni causate da query di sistema per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

last_system_seek

datetime

Data e ora dell'ultima operazione Seek di sistema causata da query di sistema per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

last_system_scan

datetime

Data e ora dell'ultima scansione di sistema causata da query di sistema per cui avrebbe potuto essere utilizzato l'indice consigliato del gruppo.

avg_total_system_cost

float

Costo medio delle query di sistema che potrebbe essere ridotto dall'indice del gruppo.

avg_system_impact

float

Vantaggio percentuale medio che potrebbe essere garantito alle query di sistema con l'implementazione del gruppo di indici mancanti. Questo valore indica la percentuale di riduzione media del costo delle query in caso di implementazione del gruppo di indici mancanti.

Osservazioni

Le informazioni restituite da sys.dm_db_missing_index_group_stats vengono aggiornate ogni volta che viene eseguita una query, non ad ogni compilazione o ricompilazione di query. Le statistiche di utilizzo non sono persistenti e vengono mantenute soltanto fino al riavvio di SQL Server. Per mantenere le statistiche di utilizzo anche dopo il riciclo del server, gli amministratori di database devono eseguire periodicamente copie di backup delle informazioni relative agli indici mancanti.

Per informazioni sull'attivazione e sulla disattivazione della raccolta di informazioni sugli indici mancanti, vedere Informazioni sulla funzionalità degli indici mancanti.

Per informazioni sui limiti di questa funzionalità , vedere Limitazioni della funzionalità degli indici mancanti.

Per informazioni sulla consistenza delle transazioni in relazione agli oggetti a gestione dinamica per gli indici mancanti, vedere Informazioni sulla funzionalità degli indici mancanti.

Autorizzazioni

Per eseguire query su questa vista a gestione dinamica, è necessario che agli utenti sia stata concessa l'autorizzazione VIEW SERVER STATE o qualsiasi autorizzazione che include l'autorizzazione VIEW SERVER STATE.

Esempi

Negli esempi seguenti viene illustrato l'utilizzo della vista a gestione dinamica sys.dm_db_missing_index_group_stats.

A. Trovare i 10 indici mancanti con il massimo miglioramento previsto per le query utente

La query seguente determina i 10 indici mancanti in grado di determinare il massimo miglioramento cumulativo previsto, in ordine decrescente, per le query utente.

SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;

B. Trovare i singoli indici mancanti e i relativi dettagli delle colonne per un determinato gruppo di indici mancanti

La query seguente identifica gli indici mancanti che costituiscono un determinato gruppo di indici mancanti e ne visualizza i dettagli delle colonne. Ai fini di questo esempio, l'handle del gruppo di indici mancanti è 24.

SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
    ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
    ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;

Questa query indica il nome del database, dello schema e della tabella in cui un indice risulta mancante, nonché i nomi delle colonne da utilizzare per la chiave di indice. Quando si scrive l'istruzione DDL CREATE INDEX per implementare indici mancanti, nella clausola ON <table_name> dell'istruzione CREATE INDEX elencare innanzitutto le colonne di uguaglianza e quindi le colonne di disuguaglianza. Le colonne incluse devono essere elencate nella clausola INCLUDE dell'istruzione CREATE INDEX. Per determinare un ordine efficiente per le colonne di uguaglianza, ordinarle in base alla selettività a partire dalle colonne più selettive, all'estrema sinistra nell'elenco di colonne.

Per ulteriori informazioni sull'utilizzo delle informazioni restituite da questi oggetti a gestione dinamica per la scrittura di istruzioni DDL CREATE INDEX, vedere Utilizzo delle informazioni sugli indici mancanti per scrivere istruzioni CREATE INDEX.