sys.dm_db_missing_index_details (Transact-SQL)

Retourne des informations détaillées sur les index manquants, à l'exclusion des index spatiaux.

Nom de la colonne

Type de données

Description

index_handle

int

Identifie un index manquant. L'identificateur est unique sur le serveur. index_handle est la clé de cette table.

database_id

smallint

Identifie la base de données dans laquelle réside la table comportant les index manquants.

object_id

int

Identifie la table dans laquelle est situé l'index manquant.

equality_columns

nvarchar(4000)

Liste de colonnes, séparées par des virgules, qui contribuent aux prédicats d'égalité au format :

table.column =constant_value

inequality_columns

nvarchar(4000)

Liste de colonnes, séparées par des virgules, qui contribuent aux prédicats d'inégalité, par exemple, les prédicats au format :

table.column > constant_value

Tout opérateur de comparaison autre que "=" exprime l'inégalité.

included_columns

nvarchar(4000)

Liste de colonnes, séparées par des virgules, requises comme colonnes de couverture pour la requête. Pour plus d'informations sur les colonnes de couverture ou les colonnes incluses, consultez Créer des index avec colonnes incluses.

instruction

nvarchar(4000)

Nom de la table dans laquelle est situé l'index manquant.

Notes

Les informations retournées par sys.dm_db_missing_index_details sont mises à jour lorsqu'une requête est optimisée par l'optimiseur de requête, et elles ne sont pas conservées de manière permanente. Les informations sur les index manquants sont simplement conservées jusqu'au redémarrage de SQL Server. Les administrateurs de base de données doivent effectuer régulièrement des copies de sauvegarde des informations sur les index manquants s'ils souhaitent les conserver après le recyclage du serveur.

Pour savoir à quels groupes d'index manquants appartient un index manquant, vous pouvez interroger la vue de gestion dynamique sys.dm_db_missing_index_groups en établissant une équijointure avec sys.dm_db_missing_index_details d'après la colonne index_handle.

Utilisation des informations sur les index manquants dans les instructions CREATE INDEX

Pour convertir les informations retournées par sys.dm_db_missing_index_details en une instruction CREATE INDEX, les colonnes d'égalité doivent être placées avant les colonnes d'inégalité, et ensemble, ces colonnes doivent constituer la clé de l'index. Les colonnes incluses doivent être ajoutées à l'instruction CREATE INDEX à l'aide de la clause INCLUDE. Pour déterminer un ordre efficace pour les colonnes d'égalité, vous devez les organiser en fonction de leur sélectivité : répertoriez les colonnes les plus sélectives (les colonnes de gauche dans la liste des colonnes).

Cohérence transactionnelle

Si une transaction crée ou supprime une table, les lignes qui contiennent les informations d'index manquants concernant les objets supprimés sont retirées de cet objet de gestion dynamique, ce qui permet de préserver la cohérence des transactions.

Autorisations

Les utilisateurs doivent bénéficier de l'autorisation VIEW SERVER STATE ou de tout privilège qui implique l'autorisation VIEW SERVER STATE pour interroger cette vue de gestion dynamique.

Voir aussi

Référence

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)