sys.dm_os_out_of_memory_events

Se aplica a:Azure SQL DatabaseAzure SQL Managed Instance

Devuelve un registro de eventos de memoria insuficiente (OOM).

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 datetime2, no null Hora del evento OOM
oom_cause tinyint, no null 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.
oom_cause_desc nvarchar(60), no null Descripción de oom_cause, una de las siguientes:
0. DESCONOCIDO: no se pudo determinar la causa de OOM
1. 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 datos
3. OS_MEMORY_PRESSURE - OOM debido a la presión de memoria externa del sistema operativo
4. OS_MEMORY_PRESSURE_SQL - OOM debido a la presión de memoria externa de otras instancias del motor de base de datos
5. NON_SOS_MEMORY_LEAK - OOM debido a una fuga en memoria que no es SOS, por ejemplo, módulos cargados
6. SERVERLESS_MEMORY_RECLAMATION : OOM relacionado con la recuperación de memoria en una base de datos sin servidor
7. MEMORY_LEAK - OOM debido a una pérdida en la memoria SOS
8. SLOW_BUFFER_POOL_SHRINK - OOM debido a que el grupo de búferes no libera memoria lo suficientemente rápido bajo presión de memoria
9. INTERNAL_POOL: memoria insuficiente en el grupo de recursos interno
10. SYSTEM_POOL: memoria insuficiente en un grupo de recursos del sistema
11. QUERY_MEMORY_GRANTS - OOM debido a concesiones de memoria grandes mantenidas por consultas
12. REPLICAS_AND_AVAILABILITY: OOM debido a cargas de trabajo en el grupo de recursos SloSecSharedPool
available_physical_memory_mb int, no null Memoria física disponible, en megabytes
initial_job_object_memory_limit_mb int, null 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.
current_job_object_memory_limit_mb int, null Límite de memoria actual del objeto de trabajo, en megabytes
process_memory_usage_mb int, no null Uso total de memoria de proceso en megabytes por la instancia
non_sos_memory_usage_mb int, no null Uso no SOS en megabytes, incluidos subprocesos creados por SOS, subprocesos creados por componentes que no son SOS, archivos DLL cargados, etc.
committed_memory_target_mb int, no null Memoria de destino de SOS en megabytes
committed_memory_mb int, no null Memoria confirmada de SOS en megabytes
allocation_potential_memory_mb int, no null Memoria disponible para la instancia del motor de base de datos para las nuevas asignaciones, en megabytes
oom_factor tinyint, no null Valor que proporciona información adicional relacionada con el evento OOM, solo para uso interno.
oom_factor_desc nvarchar(60), no null Descripción de oom_factor. Solo para uso interno. Uno de los valores siguientes:
0 - UNDEFINED
1 - ALLOCATION_POTENTIAL
2 - BLOCK_ALLOCATOR
3 - ESCAPE_TIMEOUT
4 - FAIL_FAST
5 - MEMORY_POOL
6 - EMERGENCY_ALLOCATOR
7 - VIRTUAL_ALLOC
8 - SIMULADO
9 - BUF_ALLOCATOR
10 - QUERY_MEM_QUEUE
11 - FRAGMENTO
12 - INIT_DESCRIPTOR
13 - MEMORY_POOL_PRESSURE
14 - DESCRIPTOR_ALLOCATOR
15 - DESCRIPTOR_ALLOCATOR_ESCAPE
oom_resource_pools nvarchar(max), null 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.
top_memory_clerks nvarchar(max), not null 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.
top_resource_pools nvarchar(max), not null 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.
possible_leaked_memory_clerks nvarchar(max), null 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.
possible_non_sos_leaked_memory_mb int, null Memoria no SOS filtrada en megabytes, si existe. Basado en heurística y proporcionado con un grado finito de confianza.

Permisos

En Azure SQL Instancia administrada, requiere VIEW SERVER 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_ServerStateReader##rol del servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##.

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, esta DMV está visible pero no se admite en SQL Server 2022 (16.x).

summarized_oom_snapshot evento extendido

El evento extendido summarized_oom_snapshot forma parte de la sesión de eventos existente system_health para simplificar la detección. Este evento aparece cuando se detectan eventos de memoria insuficiente (OOM). Esta DMV se alinea con la actividad registrada en el summarized_oom_snapshot evento extendido, ambas introducidas en Azure SQL Database en enero de 2022. Para más información, consulta Blog: Una nueva manera de solucionar errores de memoria insuficiente en el motor de base de datos.

Ejemplo

En el ejemplo siguiente se devuelven los datos de eventos ordenados por la hora más reciente de la base de datos conectada actualmente.

SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;