Megosztás a következőn keresztül:


sys.dm_os_out_of_memory_events

Vonatkozik a következőkre:Azure SQL DatabaseAzure SQL Managed InstanceSQL adatbázis a Microsoft Fabric-ben

A legutóbbi memóriakihasználtsági (OOM-) események készletét adja vissza.

Az Azure SQL Database memóriakihasználtságával kapcsolatos további információkért tekintse meg az Azure SQL Database memórián kívüli hibáinak elhárítását ismertető témakört.

Oszlop név Adattípus Leírás
event_time datetime OOM-esemény ideje. Nem lehet null értékű.
oom_cause tinyint Az OOM kiváltó okát jelző numerikus érték. Az OOM okát heurisztikus algoritmus határozza meg, és véges fokú megbízhatósággal rendelkezik. Nem lehet null értékű.
oom_cause_desc nvarchar(30) A .oom_cause Nem lehet null értékű.
0. UNKNOWN - OOM-ok nem határozható meg
1. HEKATON_POOL_MEMORY_LOW – Az OLTP In-Memory használt erőforráskészletben nincs elegendő memória. További információ: Monitor In-Memory OLTP.
2. MEMORY_LOW - Nem áll rendelkezésre elegendő memória az adatbázismotor folyamatához
3. OS_MEMORY_PRESSURE - OOM az operációs rendszer külső memóriaterhelése miatt
4. OS_MEMORY_PRESSURE_SQL - OOM más adatbázismotor-példány(ok) külső memóriaterhelése miatt
5. NON_SOS_MEMORY_LEAK - OOM a nem SOS memóriában szivárgás miatt, például betöltött modulok
6. SERVERLESS_MEMORY_RECLAMATION – Kiszolgáló nélküli adatbázisban lévő memóriavisszahíváshoz kapcsolódó OOM
7. MEMORY_LEAK - OOM az SOS-memória szivárgása miatt
8. SLOW_BUFFER_POOL_SHRINK - OOM, mert a pufferkészlet nem szabadított fel elég gyorsan memóriát a memória nyomása alatt
9. INTERNAL_POOL – Nincs elegendő memória a belső erőforráskészletben
10. SYSTEM_POOL – Nincs elegendő memória egy rendszererőforrás-készletben
11. QUERY_MEMORY_GRANTS - OOM a lekérdezések által birtokolt nagy memóriahasználat miatt
12. REPLICAS_AND_AVAILABILITY – OOM az SloSecSharedPool erőforráskészlet számítási feladatai miatt
available_physical_memory_mb Int Elérhető fizikai memória megabájtban. Nem lehet null értékű.
initial_job_object_memory_limit_mb Int Feladatobjektumok memóriakorlátja az adatbázismotor indításakor megabájtban. A feladatobjektumokról további információt az Erőforrás-szabályozás című témakörben talál. Nullázható.
current_job_object_memory_limit_mb Int Feladatobjektum aktuális memóriakorlátja megabájtban. Nullázható.
process_memory_usage_mb Int A folyamatmemória teljes kihasználtsága megabájtban a példány szerint. Nem lehet null értékű.
non_sos_memory_usage_mb Int Nem SOS-használat megabájtban, beleértve az SOS által létrehozott szálakat, a nem SOS-összetevők által létrehozott szálakat, a betöltött DLL-eket stb. Nem null értékű.
committed_memory_target_mb Int Az SOS megabájtban megabájtban megcélozza a memóriát. Nem lehet null értékű.
committed_memory_mb Int AZ SOS által lekötött memória megabájtban van megabájtban. Nem lehet null értékű.
allocation_potential_memory_mb Int Az adatbázismotor-példány számára rendelkezésre álló memória az új foglalásokhoz megabájtban. Nem lehet null értékű.
oom_factor tinyint Olyan érték, amely az OOM-eseményhez kapcsolódó további információkat nyújt, csak belső használatra. Nem lehet null értékű.
oom_factor_desc nvarchar(30) A .oom_factor Csak belső használatra. Nem lehet null értékű.
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) Memórián kívüli erőforráskészletek, beleértve az egyes készletek memóriahasználati statisztikáit. Ez az információ JSON-értékként van megadva. Nullázható.
top_memory_clerks nvarchar(4000) A legnépszerűbb memóriajegyzők memóriahasználat szerint, beleértve az egyes írnokok memóriahasználati statisztikáit. Ez az információ JSON-értékként van megadva. Nullázható.
top_resource_pools nvarchar(4000) A legnépszerűbb erőforráskészletek memóriahasználat szerint, beleértve az egyes erőforráskészletek memóriahasználati statisztikáit. Ez az információ JSON-értékként van megadva. Nullázható.
possible_leaked_memory_clerks nvarchar(4000) Memóriajegyzők, akiknek kiszivárgott a memóriája. Heurisztika alapján, véges magabiztossággal. Ez az információ JSON-értékként van megadva. Nullázható.
possible_non_sos_leaked_memory_mb Int Kiszivárgott nem SOS-memória megabájtban, ha van ilyen. Heurisztika alapján, véges magabiztossággal. Nullázható.

Engedélyek

A felügyelt Azure SQL-példányon engedélyre van szükség VIEW SERVER PERFORMANCE STATE .

Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerPerformanceStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE PERFORMANCE STATE engedélyére, vagy a ##MS_ServerPerformanceStateReader## kiszolgálói szerepkör tagságára van szükség.

Megjegyzések

A nézetben minden sor egy memóriahiányos (OOM) eseményt jelöl, amely az adatbázismotorban történt. Nem minden OOM-esemény rögzíthető. A régebbi OOM-események eltűnhetnek az eredményhalmazból, ha újabb OOM-események történnek. Az eredményhalmaz nem marad meg az adatbázismotor újraindítása során.

Jelenleg ez a DMV látható, de nem támogatott az SQL Server 2022 (16.x) és SQL Server 2025 (17.x) verziókban.

summarized_oom_snapshot kiterjesztett esemény

A summarized_oom_snapshot kiterjesztett esemény az esemény munkamenetének része, amely leegyszerűsíti a system_health memóriaen kívüli események észlelését. Minden summarized_oom_snapshot kiterjesztett esemény egy sornak felel meg a következőben sys.dm_os_out_of_memory_events: . További információ : Blog: A memóriakihasználtság hibáinak elhárításának új módja az adatbázismotorban.

Példák

Egy. Az összes elérhető OOM-esemény lekérése

Az alábbi példa az aktuálisan csatlakoztatott adatbázist üzemeltető adatbázismotor legutóbbi időpontja szerint rendezett összes eseményadatot adja vissza.

SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;

B. Az egyes OOM-események legfontosabb memóriajegyzőinek lekérése

Az alábbi példa az eseményadatok egy részhalmazát adja vissza, és kibontja a JSON-adatokat az top_memory_clerks oszlopban. Az eredményhalmaz minden sora egy adott OOM-esemény legfelső memóriajegyzőjét jelöli.

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. Az egyes OOM-események legfontosabb erőforráskészleteinek lekérése

Az alábbi példa az eseményadatok egy részhalmazát adja vissza, és kibontja a JSON-adatokat az top_resource_pools oszlopban. Az eredményhalmaz minden sora egy adott OOM-esemény legfelső erőforráskészletét jelöli.

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;