sys.dm_db_missing_index_details (Transact-SQL)
Retourne des informations détaillées sur les index manquants, à l'exclusion des index spatiaux.
Dans Base de données SQL Windows Azure, les vues de gestion dynamique ne peuvent pas exposer des informations qui ont un impact sur la relation contenant-contenu de la base de données, ou exposer des informations concernant d'autres bases de données auxquelles l'utilisateur a accès. Pour éviter d'exposer ces informations, chaque ligne contenant des données qui n'appartient pas au locataire connecté est filtrée.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
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. Pour les index optimisés en mémoire (de hachage et non cluster optimisés en mémoire), ignorez included_columns. Toutes les commandes de la table sont incluses dans chaque index optimisé en mémoire. |
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 pour les index optimisés en mémoire et sur disque, 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).
Pour plus d'informations sur les index optimisés en mémoire, consultez Instructions pour utiliser les index sur les tables mémoire optimisées.
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)