Condividi tramite


sys.dm_db_missing_index_details (Transact-SQL)

Restituisce informazioni dettagliate sugli indici mancanti, escludendo gli indici spaziali.

Nome colonna

Tipo di dati

Descrizione

index_handle

int

Identifica un determinato indice mancante. L'identificatore è univoco a livello di server. index_handle costituisce la chiave della tabella.

database_id

smallint

Identifica il database in cui è archiviata la tabella con l'indice mancante.

object_id

int

Identifica la tabella in cui l'indice risulta mancante.

equality_columns

nvarchar(4000)

Elenco delimitato da virgole delle colonne che contribuiscono ai predicati di uguaglianza nel formato seguente:

table.column =constant_value

inequality_columns

nvarchar(4000)

Elenco delimitato da virgole delle colonne che contribuiscono ai predicati di disuguaglianza, ad esempio predicati nel formato seguente:

table.column > constant_value

Qualsiasi operatore di confronto diverso da "=" esprime disuguaglianza. Per un elenco completo degli operatori di confronto, vedere Operatori di confronto (Motore di database).

included_columns

nvarchar(4000)

Elenco delimitato da virgole delle colonne necessarie come colonne di copertura per la query. Per ulteriori informazioni sulle colonne di copertura o incluse, vedere Creazione di indici con colonne incluse.

statement

nvarchar(4000)

Nome della tabella in cui l'indice risulta mancante.

Osservazioni

Le informazioni restituite da sys.dm_db_missing_index_details vengono aggiornate in caso di ottimizzazione di una query tramite Query Optimizer e non sono persistenti. Le informazioni relative agli indici mancanti vengono mantenute solo fino al riavvio di SQL Server. Per mantenere tali informazioni anche dopo il riciclo del server, gli amministratori di database devono eseguirne periodicamente copie di backup.

Per determinare il gruppo di indici mancanti a cui appartiene un determinato indice mancante, è possibile eseguire query sulla vista a gestione dinamica sys.dm_db_missing_index_groups eseguendone l'equijoin con sys.dm_db_missing_index_details in base alla colonna index_handle.

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

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

Utilizzo di informazioni sugli indici mancanti in istruzioni CREATE INDEX

Per convertire le informazioni restituite da sys.dm_db_missing_index_details in un'istruzione CREATE INDEX, le colonne di uguaglianza devono essere inserite prima delle colonne di disuguaglianza e la relativa combinazione deve costituire la chiave dell'indice. Aggiungere le colonne incluse all'istruzione CREATE INDEX mediante la clausola INCLUDE. 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 sulla scrittura di istruzioni CREATE INDEX con le informazioni relative agli indici mancanti restituite da sys.dm_db_missing_index_details, vedere Utilizzo delle informazioni sugli indici mancanti per scrivere istruzioni CREATE INDEX.

Consistenza delle transazioni

Se in una transazione viene creata o eliminata una tabella, le righe contenenti le informazioni sugli indici mancanti per gli oggetti eliminati vengono rimosse da questo oggetto a gestione dinamica, mantenendo la consistenza delle transazioni. Per ulteriori informazioni sulla consistenza delle transazioni in relazione agli oggetti a gestione dinamica per gli indici mancanti, vedere Informazioni sulla caratteristica 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.