sys.dm_db_missing_index_group_stats (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Retourne des informations de résumé sur les groupes d'index manquants, à l'exclusion des index spatiaux.
Dans Azure SQL base de données, les vues de gestion dynamique ne peuvent pas exposer des informations qui auraient un impact sur le confinement de la base de données ou exposer des informations sur d’autres bases de données auxquelles l’utilisateur a accès. Pour éviter d’exposer ces informations, chaque ligne qui contient des données qui n’appartiennent pas au locataire connecté est filtrée.
Nom de la colonne | Type de données | Description |
---|---|---|
group_handle | int | Identifie un groupe d'index manquant. Cet identificateur est unique sur le serveur. Les autres colonnes fournissent des informations sur toutes les requêtes pour lesquelles l'index du groupe est considéré comme manquant. Un groupe d'index ne contient qu'un seul index. Peut être joint à index_group_handle dans sys.dm_db_missing_index_groups. |
unique_compiles | bigint | Nombre de compilations et de recompilations qui pourraient tirer parti de ce groupe d'index manquants. Les compilations et les recompilations de nombreuses requêtes peuvent contribuer à la valeur de cette colonne. |
user_seeks | bigint | Nombre de recherches résultant de requêtes utilisateur pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
user_scans | bigint | Nombre d'analyses résultant de requêtes utilisateur pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
last_user_seek | datetime | Date et heure de la dernière recherche résultant de requêtes utilisateur pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
last_user_scan | datetime | Date et heure de la dernière analyse résultant de requêtes utilisateur pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
avg_total_user_cost | float | Coût moyen des requêtes utilisateur qui pourrait être réduit grâce à l'index du groupe. |
avg_user_impact | float | Bénéfice moyen (en pourcentage) dont les requêtes utilisateur pourraient tirer parti si ce groupe d'index manquants était implémenté. Cela signifie que le coût des requêtes diminuerait, en moyenne, de la valeur de ce pourcentage si ce groupe d'index manquants était implémenté. |
system_seeks | bigint | Nombre de recherches résultant de requêtes système (telles que les requêtes de statistiques automatiques) pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. Pour plus d’informations, consultez Auto Stats Event Class. |
system_scans | bigint | Nombre d'analyses résultant de requêtes système pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
last_system_seek | datetime | Date et heure de la dernière recherche système résultant de requêtes système pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
last_system_scan | datetime | Date et heure de la dernière analyse système résultant de requêtes système pour lesquelles l'index recommandé du groupe pourrait avoir été utilisé. |
avg_total_system_cost | float | Coût moyen des requêtes système qui pourrait être réduit grâce à l'index du groupe. |
avg_system_impact | float | Bénéfice moyen (en pourcentage) dont les requêtes système pourraient tirer parti si ce groupe d'index manquants était implémenté. Cela signifie que le coût des requêtes diminuerait, en moyenne, de la valeur de ce pourcentage si ce groupe d'index manquants était implémenté. |
Notes
Les informations retournées par sys.dm_db_missing_index_group_stats
sont mises à jour à chaque exécution de requête, pas à chaque compilation ou recompilation de requête. Les statistiques d’utilisation ne sont pas conservées et sont conservées uniquement jusqu’à ce que le moteur de base de données soit redémarré. 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 conserver les statistiques d'utilisation après le recyclage du serveur. Utilisez la colonne sqlserver_start_time
dans sys.dm_os_sys_info pour rechercher la dernière heure de démarrage du moteur de base de données.
Notes
Le jeu de résultats de cette DMV est limité à 600 lignes. Chaque ligne contient un index manquant. Si vous avez plus de 600 index manquants, vous devez traiter les index manquants existants afin de pouvoir ensuite en afficher les plus récents.
Un groupe d’index manquant peut avoir plusieurs requêtes qui ont besoin du même index. Pour plus d’informations sur les requêtes individuelles qui ont besoin d’un index spécifique dans cette DMV, consultez sys.dm_db_missing_index_group_stats_query.
Autorisations
Pour interroger cette vue de gestion dynamique, les utilisateurs doivent bénéficier de l'autorisation VIEW SERVER STATE ou de tout privilège qui implique l'autorisation VIEW SERVER STATE.
Autorisations pour SQL Server 2022 et versions ultérieures
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Exemples
Les exemples suivants illustrent comment utiliser la sys.dm_db_missing_index_group_stats
vue de gestion dynamique. Apprenez-en davantage sur l’utilisation d’index manquants dans l’optimisation des index non cluster avec des suggestions d’index manquants.
R. Trouvez les 10 index manquants qui devraient générer l'amélioration la plus importante pour les requêtes utilisateur
La requête suivante détermine les 10 index manquants qui génèreraient l'amélioration cumulée la plus importante, par ordre décroissant, pour les requêtes utilisateur.
SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;
B. Trouvez les différents index manquants et les détails de leurs colonnes pour un groupe d'index manquants spécifique
La requête suivante détermine quels index manquants constituent un groupe d'index manquants spécifique et affiche les détails de leurs colonnes. Dans cet exemple, l’index group_handle
manquant est 24.
SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;
Cette requête fournit le nom de la base de données, du schéma et de la table où un index est manquant. Elle fournit également le nom des colonnes devant être utilisées pour la clé d'index. Lors de l’écriture de l’instruction CREATE INDEX DDL pour implémenter des index manquants, répertoriez d’abord les colonnes d’égalité, puis les colonnes d’inégalité dans la clause ON <table_name> de l’instruction CREATE INDEX. Les colonnes incluses doivent être indiquées dans la clause INCLUDE de l'instruction CREATE INDEX. Pour déterminer un ordre efficace pour les colonnes d'égalité, organisez ces colonnes en fonction de leur sélectivité, en répertoriant d'abord les colonnes les plus sélectives (les colonnes de gauche dans la liste des colonnes). Découvrez comment appliquer des suggestions d’index manquants.
Étapes suivantes
Pour en savoir plus sur la fonctionnalité d’index manquant, consultez les articles suivants :
- Paramétrer les index non-cluster avec les suggestions d’index manquants
- sys.dm_db_missing_index_columns (Transact-SQL)
- sys.dm_db_missing_index_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- CREATE INDEX (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour