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)