Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает набор последних событий вне памяти (OOM).
Дополнительные сведения об условиях нехватки памяти в База данных SQL Azure см. в разделе "Устранение неполадок с нехваткой памяти" в База данных SQL Azure.
Имя столбца | Тип данных | Описание |
---|---|---|
event_time |
datetime | Время события OOM. Не допускает значение NULL. |
oom_cause |
tinyint | Числовое значение, указывающее первопричину OOM. Причина OOM определяется эвристических алгоритмом и предоставляется с конечной степенью достоверности. Не допускает значение NULL. |
oom_cause_desc |
nvarchar(30) |
oom_cause Описание . Не допускает значение NULL.0. UNKNOWN — не удалось определить причину OOM1. HEKATON_POOL_MEMORY_LOW — недостаточно памяти в пуле ресурсов, используемом для OLTP в памяти. Дополнительные сведения см. в разделе "Мониторинг в памяти OLTP". 2. MEMORY_LOW Недостаточно памяти для процесса ядра СУБД3. OS_MEMORY_PRESSURE — OOM из-за внешнего давления памяти из операционной системы4. OS_MEMORY_PRESSURE_SQL — OOM из-за внешнего давления памяти из других экземпляров ядра СУБД5. NON_SOS_MEMORY_LEAK — OOM из-за утечки в памяти, отличной от SOS, например загруженных модулей6. SERVERLESS_MEMORY_RECLAMATION — OOM, связанная с восстановлением памяти в бессерверной базе данных7. MEMORY_LEAK — OOM из-за утечки в памяти SOS8. — OOM из-за того, что буферный пул не освобождает память достаточно быстро под давлением памяти. SLOW_BUFFER_POOL_SHRINK 9. INTERNAL_POOL Недостаточно памяти во внутреннем пуле ресурсов10. SYSTEM_POOL Недостаточно памяти в системном пуле ресурсов11. QUERY_MEMORY_GRANTS — OOM из-за больших грантов памяти, содержащихся в запросах12. REPLICAS_AND_AVAILABILITY — OOM из-за рабочих нагрузок в пуле ресурсов SloSecSharedPool |
available_physical_memory_mb |
int | Доступная физическая память в мегабайтах. Не допускает значение NULL. |
initial_job_object_memory_limit_mb |
int | Ограничение памяти объекта задания при запуске ядра СУБД в мегабайтах. Дополнительные сведения о объектах заданий см. в разделе "Управление ресурсами". Может принимать значение NULL. |
current_job_object_memory_limit_mb |
int | Текущий предел памяти объекта задания в мегабайтах. Может принимать значение NULL. |
process_memory_usage_mb |
int | Общее использование памяти процесса в мегабайтах экземпляром. Не допускает значение NULL. |
non_sos_memory_usage_mb |
int | Использование, отличное от SOS в мегабайтах, включая созданные потоки SOS, потоки, созданные компонентами, не являющихся SOS, загруженные библиотеки DLL и т. д. Не допускает значение NULL. |
committed_memory_target_mb |
int | Целевая память SOS в мегабайтах. Не допускает значение NULL. |
committed_memory_mb |
int | SOS зафиксированная память в мегабайтах. Не допускает значение NULL. |
allocation_potential_memory_mb |
int | Память, доступная экземпляру ядра СУБД для новых выделений в мегабайтах. Не допускает значение NULL. |
oom_factor |
tinyint | Значение, которое предоставляет дополнительные сведения, связанные с событием OOM, только для внутреннего использования. Не допускает значение NULL. |
oom_factor_desc |
nvarchar(30) |
oom_factor Описание . Только для внутреннего пользования. Не допускает значение NULL.0 - UNDEFINED 1 - ALLOCATION_POTENTIAL 2 - BLOCK_ALLOCATOR 3 - ESCAPE_TIMEOUT 4 - FAIL_FAST 5 - MEMORY_POOL 6 - EMERGENCY_ALLOCATOR 7 - VIRTUAL_ALLOC 8 - SIMULATED 9 - BUF_ALLOCATOR 10 - QUERY_MEM_QUEUE 11 - FRAGMENT 12 - INIT_DESCRIPTOR 13 - MEMORY_POOL_PRESSURE 14 - DESCRIPTOR_ALLOCATOR 15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(4000) | Пулы ресурсов, не имеющие памяти, включая статистику использования памяти для каждого пула. Эти сведения предоставляются в виде значения JSON. Может принимать значение NULL. |
top_memory_clerks |
nvarchar(4000) | Основные клерки памяти по объему памяти, включая статистику использования памяти для каждого клерка. Эти сведения предоставляются в виде значения JSON. Может принимать значение NULL. |
top_resource_pools |
nvarchar(4000) | Основные пулы ресурсов по использованию памяти, включая статистику использования памяти для каждого пула ресурсов. Эти сведения предоставляются в виде значения JSON. Может принимать значение NULL. |
possible_leaked_memory_clerks |
nvarchar(4000) | Клерки памяти, которые утечки памяти. Основываясь на эвристики и обеспеченной конечной степенью достоверности. Эти сведения предоставляются в виде значения JSON. Может принимать значение NULL. |
possible_non_sos_leaked_memory_mb |
int | Утечка памяти, отличной от SOS в мегабайтах, если таковые есть. Основываясь на эвристики и обеспеченной конечной степенью достоверности. Может принимать значение NULL. |
Разрешения
Для Управляемый экземпляр SQL Azure требуется VIEW SERVER PERFORMANCE STATE
разрешение.
Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerPerformanceStateReader##
роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE PERFORMANCE STATE
в базе данных или членство в роли сервера ##MS_ServerPerformanceStateReader##
.
Замечания
Каждая строка в этом представлении представляет событие вне памяти (OOM), которое произошло в ядре СУБД. Не все события OOM могут быть записаны. Старые события OOM могут исчезнуть из результирующий набор, так как происходят более последние события OOM. Результирующий набор не сохраняется во время перезапуска ядра СУБД.
В настоящее время это динамическое представление отображается, но не поддерживается в ПРЕДВАРИТЕЛЬНОй версии SQL Server 2022 (16.x) и SQL Server 2025 (17.x).
расширенное событие summarized_oom_snapshot
Расширенное summarized_oom_snapshot
событие является частью system_health
сеанса событий, чтобы упростить обнаружение событий вне памяти. Каждое summarized_oom_snapshot
расширенное событие соответствует строке в sys.dm_os_out_of_memory_events
. Дополнительные сведения см . в блоге: новый способ устранения ошибок вне памяти в ядре СУБД.
Примеры
А. Получение всех доступных событий OOM
В следующем примере возвращаются все данные событий, упорядоченные по последнему времени для ядра СУБД, в котором размещена в настоящее время подключенная база данных.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
В. Получение основных клерков памяти для каждого события OOM
В следующем примере возвращается подмножество данных события и расширяется данные JSON в столбце top_memory_clerks
. Каждая строка в результирующем наборе представляет собой главный клирик памяти для определенного события OOM.
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;
С. Получение основных пулов ресурсов для каждого события OOM
В следующем примере возвращается подмножество данных события и расширяется данные JSON в столбце top_resource_pools
. Каждая строка в результирующем наборе представляет собой верхний пул ресурсов для определенного события OOM.
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;
Связанный контент
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (база данных SQL Azure)
- Оптимизация производительности с помощью технологий в памяти в База данных SQL Azure
- Оптимизация производительности с помощью технологий в памяти в Управляемый экземпляр SQL Azure
- Мониторинг хранилища OLTP в памяти в База данных SQL Azure
- Мониторинг хранилища OLTP в памяти в Управляемый экземпляр SQL Azure
- Устранение проблем нехватки памяти в Базе данных SQL Azure