Compartir a través de


sys.dm_db_resource_stats (Azure SQL Database)

Se aplica a: Azure SQL Database

Devuelve el consumo de CPU, E/S y memoria de una base de datos de Azure SQL Database. Existe una fila por cada 15 segundos, incluso si no hay ninguna actividad. Los datos históricos se mantienen aproximadamente durante una hora.

Nota:

sys.dm_db_resource_statsno se admite en azure SQL Instancia administrada. Use la vista de catálogo sys.server_resource_stats en su lugar.

Columnas Tipo de datos Descripción
end_time datetime Hora UTC que indica el fin del intervalo de informes actual.
avg_cpu_percent decimal (5,2) Uso de proceso promedio como porcentaje del límite del nivel de servicio.
avg_data_io_percent decimal (5,2) Promedio de uso de E/S de datos en porcentaje del límite del nivel de servicio. Para las bases de datos de Hiperescala, consulte E/S de datos en estadísticas de uso de recursos.
avg_log_write_percent decimal (5,2) Promedio de escrituras del registro de transacciones (en MB/s) como porcentaje del límite del nivel de servicio.
avg_memory_usage_percent decimal (5,2) Uso de memoria promedio como porcentaje del límite del nivel de servicio.

Esto incluye la memoria usada para las páginas del grupo de búferes y el almacenamiento de objetos OLTP en memoria.
xtp_storage_percent decimal (5,2) Uso de almacenamiento para OLTP en memoria como porcentaje del límite del grupo al final del intervalo de informes. Esto incluye la memoria usada para el almacenamiento de los siguientes objetos OLTP en memoria: tablas optimizadas para memoria, índices y variables de tabla. También incluye memoria usada para procesar operaciones ALTER TABLE en tablas optimizadas para memoria.

Devuelve 0 si OLTP en memoria no se usa en la base de datos.
max_worker_percent decimal (5,2) Número máximo de trabajos simultáneos (solicitudes) en porcentaje del límite del nivel de servicio de la base de datos.
max_session_percent decimal (5,2) Número máximo de sesiones simultáneas en porcentaje del límite del nivel de servicio de la base de datos.
dtu_limit int Configuración actual de DTU de base de datos máxima para esta base de datos durante este intervalo. En el caso de las bases de datos que usan el modelo basado en núcleo virtual, esta columna es NULL.
cpu_limit decimal (5,2) Número de núcleos virtuales para esta base de datos durante este intervalo. En el caso de las bases de datos que usan el modelo basado en DTU, esta columna es NULL.
avg_instance_cpu_percent decimal (5,2) Uso medio de cpu por parte de la instancia del motor de base de datos que hospeda el grupo, como porcentaje del límite de instancias. Se notifica en una granularidad de un minuto e incluye el uso de CPU tanto por parte del usuario como de las cargas de trabajo internas.
avg_instance_memory_percent decimal (5,2) Uso medio de memoria para la instancia de SQL Server que hospeda la base de datos. Incluye el uso de memoria tanto por parte del usuario como de las cargas de trabajo internas.
avg_login_rate_percent decimal (5,2) Solamente se identifica con fines informativos. No admitida. No se garantiza la compatibilidad futura.
replica_role int Representa el rol de réplica actual.

0 - Principal
1- Secundaria de alta disponibilidad (HA)
2 - Reenviador de replicación geográfica
3 - Réplica con nombre

Informa 1 cuando se conecta con ReadOnly intención a cualquier secundario legible. Si se conecta a una base de datos secundaria geográfica sin especificar ReadOnly la intención, notifica 2 para reflejar una conexión a un reenviador de replicación geográfica. Si se conecta a una réplica con nombre sin especificar ReadOnly la intención, notifica 3.

Sugerencia

Para obtener más contexto sobre estos límites y niveles de servicio, consulte los temas Niveles de servicio, Ajuste manual del rendimiento de las consultas en Azure SQL Database y límites de recursos y gobernanza de recursos de SQL Database.

Permisos

Esta vista requiere VIEW DATABASE STATE permiso.

Comentarios

Los datos devueltos por sys.dm_db_resource_stats se expresan como un porcentaje de los límites máximos permitidos para el nivel de servicio o el nivel de rendimiento que está ejecutando.

Si la base de datos se conmutó por error a otro servidor en los últimos 60 minutos, la vista solo devolverá datos durante el tiempo transcurrido desde esa conmutación por error.

Para obtener una vista menos granular de estos datos con un período de retención más largo, use la vista de sys.resource_stats catálogo en Azure SQL Database. Esta vista captura datos cada 5 minutos y mantiene datos históricos durante 14 días. Para obtener más información, consulte sys.resource_stats.

Cuando una base de datos es miembro de un grupo elástico, las estadísticas de recursos presentadas como valores de porcentaje se expresan como el porcentaje del límite máximo de las bases de datos tal como se establece en la configuración del grupo elástico.

Ejemplos

En el ejemplo siguiente se devuelven los datos de uso de recursos ordenados por la hora más reciente de la base de datos conectada actualmente en Azure SQL Database o Azure SQL Instancia administrada.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

En el ejemplo siguiente se identifica el promedio de consumo de DTU en términos de porcentaje del límite máximo permitido de DTU en el nivel de rendimiento de la base de datos de usuario durante la última hora. Considere aumentar el nivel de rendimiento de estos porcentajes a casi el 100 % de forma coherente.

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;

El ejemplo siguiente devuelve los valores máximo y promedio de porcentaje de CPU, la E/S de datos y registro, así como el consumo de memoria durante la última hora.

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;