sys.dm_os_performance_counters (Transact-SQL)

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

Renvoie une ligne par compteur de performance maintenu par le serveur. Pour plus d’informations sur chaque compteur de performances, consultez Utiliser des objets SQL Server.

Remarque

Pour appeler cela à partir d’Azure Synapse Analytics ou du système de plateforme Analytics (PDW), utilisez le nom sys.dm_pdw_nodes_os_performance_counters. 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
object_name nchar(128) Catégorie à laquelle ce compteur appartient.
counter_name nchar(128) Nom du compteur. Pour obtenir plus d’informations sur un compteur, il s’agit du nom de la rubrique à sélectionner dans la liste des compteurs dans Utiliser des objets SQL Server.
instance_name nchar(128) Nom d'une instance particulière du compteur. Contient souvent le nom de la base de données.
cntr_value bigint Valeur actuelle du compteur.

Remarque : Pour les compteurs par seconde, cette valeur est cumulative. La valeur de la fréquence doit se calculer en échantillonnant la valeur à des intervalles de temps discrets. La différence entre deux valeurs prélevées successives est égale à la fréquence de l'intervalle de temps utilisé.
cntr_type int Type de compteur défini par l'architecture de performances Windows. Pour plus d’informations sur les types de compteurs de performances, consultez WMI Performance Counter Types on Docs ou votre documentation Windows Server.
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

Si l’instance d’installation de SQL Server ne parvient pas à afficher les compteurs de performances du système d’exploitation Windows, utilisez la requête Transact-SQL suivante pour vérifier que les compteurs de performances ont été désactivés.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Si la valeur de retour est 0 ligne, cela signifie que les compteurs de performance ont été désactivés. Vous devez ensuite examiner le journal d’installation et rechercher l’erreur 3409. Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. Cela indique que les compteurs de performances n’ont pas été activés. Les erreurs qui précèdent immédiatement l'erreur 3409 doivent indiquer la cause première de l'échec d'activation des compteurs de performance. Pour plus d’informations sur les fichiers journaux d’installation, consultez Afficher et lire les fichiers journaux d’installation de SQL Server.

Les compteurs de performances où la cntr_type valeur de colonne est 65792 affichent une instantané de la dernière valeur observée uniquement, et non une moyenne.

Les compteurs de performances où la cntr_type valeur de colonne est 272696320 ou 272696576 affichent le nombre moyen d’opérations effectuées pendant chaque seconde de l’intervalle d’échantillonnage. Compteurs de ce type mesurent l’heure en cycles de l’horloge système. Par exemple, pour obtenir une lecture instantané de la dernière seconde uniquement pour les compteurs et Buffer Manager:Checkpoint pages/sec les Buffer Manager:Lazy writes/sec compteurs, vous devez comparer le delta entre deux points de collection séparés d’une seconde.

Compteurs de performances où la cntr_type valeur de colonne est 537003264 afficher le rapport d’un sous-ensemble à son ensemble sous la forme d’un pourcentage. Par exemple, le Buffer Manager:Buffer cache hit ratio compteur compare le nombre total d’accès au cache et le nombre total de recherches de cache. Par conséquent, pour obtenir une lecture instantané du dernier seconde uniquement, vous devez comparer le delta entre la valeur actuelle et la valeur de base (dénominateur) entre deux points de collection séparés d’une seconde. La valeur de base correspondante est le compteur Buffer Manager:Buffer cache hit ratio base de performances où la cntr_type valeur de colonne est 1073939712.

Compteurs de performances où la cntr_type valeur de colonne est 1073874176 afficher le nombre d’éléments traités en moyenne, sous la forme d’un rapport entre les éléments traités et le nombre d’opérations. Par exemple, les Locks:Average Wait Time (ms) compteurs comparent les attentes de verrou par seconde avec les demandes de verrou par seconde, pour afficher la durée moyenne d’attente (en millisecondes) pour chaque demande de verrou qui a entraîné une attente. Par conséquent, pour obtenir une lecture instantané du dernier seconde uniquement, vous devez comparer le delta entre la valeur actuelle et la valeur de base (dénominateur) entre deux points de collection séparés d’une seconde. La valeur de base correspondante est le compteur Locks:Average Wait Time Base de performances où la cntr_type valeur de colonne est 1073939712.

Les données du sys.dm_os_performance_counters DMV ne sont pas conservées après le redémarrage du moteur de base de données. 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.

Autorisation

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.

Exemples

L’exemple suivant retourne tous les compteurs de performances qui affichent instantané valeurs de compteur.

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type  
FROM sys.dm_os_performance_counters
WHERE cntr_type = 65792 OR cntr_type = 272696320 OR cntr_type = 537003264;  

Voir aussi

Vues de gestion dynamique SQL Server liées au système d'exploitation (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)