Partager via


sys.dm_db_resource_stats (Azure SQL Database)

S’applique à : Azure SQL Database

Retourne l’UC, les E/S et la consommation de mémoire pour une base de données dans Azure SQL Database. Une ligne existe toutes les 15 secondes, même s’il n’y a pas d’activité. Les données historiques sont conservées pendant environ une heure.

Remarque

sys.dm_db_resource_stats n’est pas pris en charge dans Azure SQL Managed Instance. Utilisez plutôt l’affichage catalogue sys.server_resource_stats .

Colonnes Type de données Description
end_time datetime Heure UTC indiquant la fin de l'intervalle de rapports actuel.
avg_cpu_percent décimal (5,2) Utilisation moyenne du calcul en pourcentage de la limite de la couche de service.
avg_data_io_percent décimal (5,2) Utilisation moyenne des E/S de données en pourcentage de la limite du niveau de service. Pour les bases de données Hyperscale, consultez Les E/S de données dans les statistiques d’utilisation des ressources.
avg_log_write_percent décimal (5,2) Nombre moyen d’écritures du journal des transactions (en Mo/s) en pourcentage de la limite du niveau de service.
avg_memory_usage_percent décimal (5,2) Utilisation moyenne de la mémoire en pourcentage de la limite de la couche de service.

Cela inclut la mémoire utilisée pour les pages du pool de mémoires tampons et le stockage d’objets OLTP en mémoire.
xtp_storage_percent décimal (5,2) Utilisation du stockage pour OLTP en mémoire sous la forme d’un pourcentage de limite de pool à la fin de l’intervalle de création de rapports. Cela inclut la mémoire utilisée pour le stockage des objets OLTP en mémoire suivants : tables, index et variables de table optimisées en mémoire. Il inclut également la mémoire utilisée pour le traitement des opérations ALTER TABLE sur des tables optimisées en mémoire.

Retourne 0 si OLTP en mémoire n’est pas utilisé dans la base de données.
max_worker_percent décimal (5,2) Nombre maximal de workers simultanés (demandes) en pourcentage de la limite du niveau de service de la base de données.
max_session_percent décimal (5,2) Nombre maximal de sessions simultanées en pourcentage de la limite du niveau de service de la base de données.
dtu_limit int Paramètre DTU de base de données maximal actuel pour cette base de données pendant cet intervalle. Pour les bases de données utilisant le modèle vCore, cette colonne est NULL.
cpu_limit décimal (5,2) Nombre de vCores pour cette base de données pendant cet intervalle. Pour les bases de données utilisant le modèle DTU, cette colonne est NULL.
avg_instance_cpu_percent décimal (5,2) Utilisation moyenne du processeur par l’instance du moteur de base de données hébergeant le pool, sous la forme d’un pourcentage de limite d’instance. Signalé à une minute de granularité et inclut l’utilisation du processeur par les charges de travail utilisateur et interne.
avg_instance_memory_percent décimal (5,2) Utilisation moyenne de la mémoire pour l’instance SQL Server hébergeant la base de données. Inclut l’utilisation de la mémoire par les charges de travail utilisateur et interne.
avg_login_rate_percent décimal (5,2) Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n’est pas garantie.
replica_role int Représente le rôle de réplica actuel.

0 - Principal
1 - Haute disponibilité (HAUTE DISPONIBILITÉ) secondaire
2 - Redirecteur de géoréplication
3 - Réplica nommé

Signale 1 lorsqu’il est connecté avec ReadOnly l’intention d’une base de données secondaire lisible. Si vous vous connectez à un géo-secondaire sans spécifier d’intention ReadOnly , signale 2 pour refléter une connexion à un redirecteur de géoréplication. Si vous vous connectez à un réplica nommé sans spécifier l’intention ReadOnly , les rapports 3.

Conseil

Pour plus de contexte sur ces limites et ces niveaux de service, consultez les rubriques Niveaux de service, Réglage manuel des performances des requêtes dans Azure SQL Database et limites des ressources et gouvernance des ressources SQL Database.

autorisations

Cette vue nécessite VIEW DATABASE STATE une autorisation.

Notes

Les données retournées par sys.dm_db_resource_stats sont exprimées sous la forme d’un pourcentage des limites maximales autorisées pour le niveau de service/niveau de performances que vous exécutez.

Si la base de données a été basculée vers un autre serveur au cours des 60 dernières minutes, la vue retourne uniquement les données pour le moment depuis ce basculement.

Pour une vue moins granulaire de ces données avec une période de rétention plus longue, utilisez la sys.resource_stats vue catalogue dans Azure SQL Database. Cette vue capture des données toutes les 5 minutes et conserve 14 jours d'historique des données. Pour plus d’informations, consultez sys.resource_stats.

Lorsqu’une base de données est membre d’un pool élastique, les statistiques de ressources présentées sous forme de valeurs de pourcentage sont exprimées en pourcentage de la limite maximale pour les bases de données définies dans la configuration du pool élastique.

Exemples

L’exemple suivant retourne les données d’utilisation des ressources classées par la date la plus récente pour la base de données actuellement connectée dans Azure SQL Database ou Azure SQL Managed Instance.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

L'exemple suivant identifie la consommation moyenne en UDBD, sous forme de pourcentage de la limite maximale autorisée d’UDBD du niveau de performance de la base de données utilisateur sur la dernière heure. Envisagez d'augmenter le niveau de performance si ces pourcentages sont souvent proches de 100 %.

SELECT end_time,
  (SELECT Max(v)
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS
   value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;

L'exemple suivant retourne les valeurs moyennes et maximales de pourcentage de CPU, d’E/S de données et de journaux et de consommation de mémoire sur la dernière heure.

SELECT
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;