Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:Azure SQL Database
Azure SQL Managed Instance
Base de datos SQL en Microsoft Fabric
Devuelve un conjunto de eventos de memoria insuficiente (OOM) recientes.
Para más información sobre las condiciones de memoria insuficiente en Azure SQL Database, consulte Solución de errores de memoria insuficiente en Azure SQL Database.
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
event_time |
datetime | Hora del evento OOM. No admite valores NULL. |
oom_cause |
tinyint | Valor numérico que indica la causa principal de OOM. La causa del OOM viene determinada por un algoritmo heurístico y se proporciona con un grado finito de confianza. No admite valores NULL. |
oom_cause_desc |
nvarchar(30) | Descripción de oom_cause. No admite valores NULL.0. UNKNOWN - No se pudo determinar la causa de OOM1. HEKATON_POOL_MEMORY_LOW: memoria insuficiente en el grupo de recursos usado para OLTP en memoria. Para obtener más información, vea Supervisar OLTP en memoria. 2. MEMORY_LOW - Memoria insuficiente disponible para el proceso del motor de base de datos3. OS_MEMORY_PRESSURE - OOM debido a la presión de memoria externa del sistema operativo4. OS_MEMORY_PRESSURE_SQL - OOM debido a la presión de memoria externa de otras instancias del motor de base de datos5. NON_SOS_MEMORY_LEAK - OOM debido a una fuga en memoria que no es SOS, por ejemplo, módulos cargados6. SERVERLESS_MEMORY_RECLAMATION - OOM relacionado con la recuperación de memoria en una base de datos sin servidor7. MEMORY_LEAK - OOM debido a una fuga en la memoria SOS8. SLOW_BUFFER_POOL_SHRINK - OOM debido a que el grupo de búferes no libera memoria lo suficientemente rápido bajo presión de memoria9. INTERNAL_POOL - Memoria insuficiente en el grupo de recursos interno10. SYSTEM_POOL - Memoria insuficiente en un grupo de recursos del sistema11. QUERY_MEMORY_GRANTS - OOM debido a concesiones de memoria grandes mantenidas por consultas12. REPLICAS_AND_AVAILABILITY - OOM debido a cargas de trabajo en el grupo de recursos SloSecSharedPool |
available_physical_memory_mb |
Int | Memoria física disponible, en megabytes. No admite valores NULL. |
initial_job_object_memory_limit_mb |
Int | Límite de memoria del objeto de trabajo en el inicio del motor de base de datos, en megabytes. Para obtener más información sobre objetos de trabajo, consulte Gobernanza de recursos. Que admite un valor NULL. |
current_job_object_memory_limit_mb |
Int | Límite de memoria actual del objeto de trabajo, en megabytes. Que admite un valor NULL. |
process_memory_usage_mb |
Int | Uso total de memoria de proceso en megabytes por la instancia. No admite valores NULL. |
non_sos_memory_usage_mb |
Int | Uso no SOS en megabytes, incluidos subprocesos creados por SOS, subprocesos creados por componentes que no son SOS, archivos DLL cargados, etc. No admite valores NULL. |
committed_memory_target_mb |
Int | Memoria de destino de SOS en megabytes. No admite valores NULL. |
committed_memory_mb |
Int | Memoria confirmada de SOS en megabytes. No admite valores NULL. |
allocation_potential_memory_mb |
Int | Memoria disponible para la instancia del motor de base de datos para las nuevas asignaciones, en megabytes. No admite valores NULL. |
oom_factor |
tinyint | Valor que proporciona información adicional relacionada con el evento OOM, solo para uso interno. No admite valores NULL. |
oom_factor_desc |
nvarchar(30) | Descripción de oom_factor. Solo para uso interno. No admite valores NULL.0 - UNDEFINED1 - ALLOCATION_POTENTIAL2 - BLOCK_ALLOCATOR3 - ESCAPE_TIMEOUT4 - FAIL_FAST5 - MEMORY_POOL6 - EMERGENCY_ALLOCATOR7 - VIRTUAL_ALLOC8 - SIMULATED9 - BUF_ALLOCATOR10 - QUERY_MEM_QUEUE11 - FRAGMENT12 - INIT_DESCRIPTOR13 - MEMORY_POOL_PRESSURE14 - DESCRIPTOR_ALLOCATOR15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(4000) | Grupos de recursos que no tienen memoria, incluidas las estadísticas de uso de memoria para cada grupo. Esta información se proporciona como un valor JSON. Que admite un valor NULL. |
top_memory_clerks |
nvarchar(4000) | Principales distribuidores de memoria por consumo de memoria, incluidas las estadísticas de uso de memoria para cada distribuidor. Esta información se proporciona como un valor JSON. Que admite un valor NULL. |
top_resource_pools |
nvarchar(4000) | Principales grupos de recursos por consumo de memoria, incluidas las estadísticas de uso de memoria para cada grupo de recursos. Esta información se proporciona como un valor JSON. Que admite un valor NULL. |
possible_leaked_memory_clerks |
nvarchar(4000) | Distribuidores de memoria que tienen memoria filtrada. Basado en heurística y proporcionado con un grado finito de confianza. Esta información se proporciona como un valor JSON. Que admite un valor NULL. |
possible_non_sos_leaked_memory_mb |
Int | Memoria no SOS filtrada en megabytes, si existe. Basado en heurística y proporcionado con un grado finito de confianza. Que admite un valor NULL. |
Permisos
En Azure SQL Instancia administrada, requiere VIEW SERVER PERFORMANCE STATE permiso.
En los objetivos de servicio Básico, S0 y S1 de SQL Database y para bases de datos en grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador Microsoft Entra o la pertenencia al ##MS_ServerPerformanceStateReader##rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE PERFORMANCE STATE en la base de datos o la pertenencia en el rol del servidor ##MS_ServerPerformanceStateReader##.
Comentarios
Cada fila de esta vista representa un evento de memoria insuficiente (OOM) que se ha producido en el motor de base de datos. No todos los eventos de OOM se pueden capturar. Los eventos OOM más antiguos pueden desaparecer del conjunto de resultados a medida que se producen eventos de OOM más recientes. El conjunto de resultados no se conserva en los reinicios del motor de base de datos.
Actualmente, este DMV es visible pero no está soportado en SQL Server 2022 (16.x) y SQL Server 2025 (17.x).
summarized_oom_snapshot evento extendido
El summarized_oom_snapshot evento extendido forma parte de la sesión de eventos para simplificar la system_health detección de eventos fuera de memoria. Cada summarized_oom_snapshot evento extendido corresponde a una fila de sys.dm_os_out_of_memory_events. Para más información, consulta Blog: Una nueva manera de solucionar errores de memoria insuficiente en el motor de base de datos.
Ejemplos
Un. Obtención de todos los eventos OOM disponibles
En el ejemplo siguiente se devuelven todos los datos de eventos ordenados por la hora más reciente del motor de base de datos que hospeda la base de datos conectada actualmente.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
B. Obtener los distribuidores de memoria principales para cada evento de OOM
En el ejemplo siguiente se devuelve un subconjunto de datos de eventos y se expanden los datos JSON de la top_memory_clerks columna. Cada fila del conjunto de resultados representa un distribuidor de memoria superior para un evento OOM específico.
SELECT event_time,
oom_cause_desc,
oom_factor_desc,
oom_resource_pools,
top_resource_pools,
clerk_type_name,
clerk_page_allocated_mb,
clerk_vm_committed_mb
FROM sys.dm_os_out_of_memory_events
CROSS APPLY OPENJSON(top_memory_clerks)
WITH (
clerk_type_name sysname '$.clerk_type_name',
clerk_page_allocated_mb bigint '$.page_allocated_mb',
clerk_vm_committed_mb bigint '$.vm_committed_mb'
)
ORDER BY event_time DESC, clerk_page_allocated_mb DESC;
C. Obtención de los grupos de recursos principales para cada evento de OOM
En el ejemplo siguiente se devuelve un subconjunto de datos de eventos y se expanden los datos JSON de la top_resource_pools columna. Cada fila del conjunto de resultados representa un grupo de recursos superior para un evento OOM específico.
SELECT event_time,
oom_cause_desc,
oom_factor_desc,
oom_resource_pools,
top_memory_clerks,
pool_name,
pool_allocations_mb,
pool_target_mb,
pool_is_oom
FROM sys.dm_os_out_of_memory_events
CROSS APPLY OPENJSON(top_resource_pools)
WITH (
pool_name sysname '$.pool_name',
pool_allocations_mb bigint '$.allocations_mb',
pool_target_mb bigint '$.pool_target_mb',
pool_is_oom bit '$.is_oom'
)
ORDER BY event_time DESC, pool_allocations_mb DESC;
Contenido relacionado
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (Azure SQL Database)
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Database
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Instancia administrada
- Supervisión del almacenamiento OLTP en memoria en base de datos de Azure SQL
- Supervisión del almacenamiento OLTP en Memoria en Azure SQL Managed Instance
- Solución de problemas de errores de memoria con Azure SQL Database