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 nel server. index_handle è la chiave di questa 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.

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 Creare 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 DMV sys.dm_db_missing_index_groups eseguendone l'equijoin con sys.dm_db_missing_index_details in base alla colonna index_handle.

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.

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.

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.

Vedere anche

Riferimento

sys.dm_db_missing_index_columns (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)