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_stats
no 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;