sys.dm_db_index_usage_stats (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Renvoie le nombre des différents types d'opérations d'index et l'heure d'exécution de chaque opération.

Dans Azure SQL Database, les vues de gestion dynamique ne peuvent pas exposer les informations susceptibles d’avoir un impact sur le contenu de la base de données ou d’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.

Remarque

La vue dynamique sys.dm_db_index_usage_stats ne retourne pas d’informations sur les index à mémoire optimisée ou les index spatiaux. Pour plus d’informations sur l’utilisation de l’index optimisé en mémoire, consultez sys.dm_db_xtp_index_stats (Transact-SQL).

Remarque

Pour appeler cette vue à partir d’Azure Synapse Analytics ou d’Analytics Platform System (PDW), utilisez sys.dm_pdw_nodes_db_index_usage_stats. Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Nom de la colonne Type de données Description
database_id smallint ID de la base de données sur laquelle la table ou la vue est définie.

Dans Azure SQL Database, les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique.
object_id int ID de la table ou de la vue sur laquelle l'index est défini.
index_id int Identificateur de l'index.
user_seeks bigint Nombre de recherches par requête utilisateur.
user_scans bigint Nombre d’analyses effectuées par les requêtes utilisateur qui n’utilisaient pas le prédicat « seek ».
user_lookups bigint Nombre de recherches de signets par les requêtes utilisateur.
user_updates bigint Nombre de mises à jour par requête utilisateur. Cela inclut l’insertion, la suppression et Mises à jour représentant le nombre d’opérations effectuées et non les lignes réelles affectées. Par exemple, si vous supprimez 1 000 lignes dans une instruction, ce nombre incrémente de 1
last_user_seek datetime Heure de la dernière recherche de l’utilisateur
last_user_scan datetime Heure de la dernière analyse utilisateur.
last_user_lookup datetime Heure de la dernière recherche utilisateur.
last_user_update datetime Heure de la dernière mise à jour utilisateur.
system_seeks bigint Nombre de recherches par requête système.
system_scans bigint Nombre d'analyses par requête système.
system_lookups bigint Nombre de recherches par requêtes système.
system_updates bigint Nombre de mises à jour par requête système.
last_system_seek datetime Heure de la dernière recherche système.
last_system_scan datetime Heure de la dernière analyse système.
last_system_lookup datetime Heure de la dernière recherche système.
last_system_update datetime Heure de la dernière mise à jour système.
pdw_node_id int S’applique à : Azure Synapse Analytics, Analytics Platform System (PDW)

Identificateur du nœud sur lequel cette distribution est activée.

Notes

Chaque recherche, analyse ou mise à jour individuelle sur l'index spécifié par l'exécution d'une requête, est comptée comme utilisation de cet index et augmente d'une unité le compteur correspondant dans cette vue. Les informations sont renvoyées pour les opérations générées par des requêtes soumises par l'utilisateur et pour les opérations générées par des requêtes internes, telles que des analyses pour le recueil de statistiques.

La user_updates colonne est un compteur de maintenance sur l’index provoqué par des opérations d’insertion, de mise à jour ou de suppression sur la table ou la vue sous-jacente. Vous pouvez utiliser cette vue pour déterminer les index qui ne sont que peu utilisés par vos applications. Vous pouvez également l'utiliser pour déterminer les index qui entraînent une surcharge à cause des traitements de maintenance. Vous envisagerez peut-être de supprimer les index qui entraînent une surcharge de maintenance mais qui ne sont pas utilisés pour des requêtes, ou peu fréquemment.

Les compteurs sont initialisés pour être vides chaque fois que le moteur de base de données est démarré. 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. En outre, si une base de données est détachée ou arrêtée (par exemple parce qu'AUTO_CLOSE a la valeur ON), toutes les lignes associées à la base de données sont supprimées.

Lorsqu’un index est utilisé, une ligne est ajoutée sys.dm_db_index_usage_stats si une ligne n’existe pas déjà pour l’index. Quand la ligne est ajoutée, ses compteurs sont à zéro.

Pendant la mise à niveau vers SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) ou SQL Server 2014 (12.x), les entrées sont sys.dm_db_index_usage_stats supprimées. À compter de SQL Server 2016 (13.x), les entrées sont conservées, car elles étaient antérieures à SQL Server 2008 R2 (10.50.x).

Autorisations

Sur SQL Server et SQL Managed Instance, l’autorisation VIEW SERVER STATE est requise.

Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d’administrateur du serveur, le compte d’administrateur Microsoft Entra ou l’appartenance au ##MS_ServerStateReader##rôle serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.

Autorisations pour SQL Server 2022 (et versions plus récentes)

Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.

Voir aussi

Fonctions et vues de gestion dynamique associées à l’index (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
Surveillance et réglage des performances