sys.dm_os_out_of_memory_events
Se aplica a: Azure SQL Database Azure 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 |
datetime, 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(30), 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(30), 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(4000), 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(4000), 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(4000), 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(4000), 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 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, esta DMV está visible pero no se admite en SQL Server 2022 (16.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.
Ejemplo
En el ejemplo siguiente se devuelven 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;
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