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 funzionalità degli indici mancanti.
Per informazioni sui limiti di questa funzionalità , vedere Limitazioni della funzionalità 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 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.