Freigeben über


sys.dm_os_out_of_memory_events

Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance

Gibt ein Abmelden von OOM-Ereignissen (Out of Memory, OOM) zurück.

Weitere Informationen zu nicht genügend Arbeitsspeicherbedingungen in Azure SQL-Datenbank finden Sie unter "Problembehandlung bei Nichtspeicherfehlern in Azure SQL-Datenbank".

Spaltenname Datentyp Beschreibung
event_time datetime, not null OOM-Ereigniszeit.
oom_cause tinyint, nicht null Ein numerischer Wert, der die Ursache für OOM angibt. Die OOM-Ursache wird durch einen heuristischen Algorithmus bestimmt und erhält einen begrenzten Grad an Konfidenz.
oom_cause_desc nvarchar(30), nicht NULL Beschreibung von oom_cause, eine von:
0. UNBEKANNT - OOM-Ursache konnte nicht bestimmt werden
1. HEKATON_POOL_MEMORY_LOW – Unzureichender Arbeitsspeicher im Ressourcenpool, der für IN-Memory OLTP verwendet wird. Weitere Informationen finden Sie unter "In-Memory OLTP überwachen".
2. MEMORY_LOW – Nicht genügend Arbeitsspeicher für den Datenbankmodulprozess verfügbar
3. OS_MEMORY_PRESSURE – OOM aufgrund des externen Speicherdrucks vom Betriebssystem
4. OS_MEMORY_PRESSURE_SQL – OOM aufgrund des externen Speicherdrucks anderer Datenbankmodulinstanzen
5. NON_SOS_MEMORY_LEAK - OOM aufgrund eines Lecks im Nicht-SOS-Speicher, z. B. geladene Module
6. SERVERLESS_MEMORY_RECLAMATION – OOM im Zusammenhang mit der Speicherbekundung in einer serverlosen Datenbank
7. MEMORY_LEAK – OOM aufgrund eines Lecks im SOS-Speicher
8. SLOW_BUFFER_POOL_SHRINK – OOM aufgrund des Pufferpools wird nicht schnell genug Arbeitsspeicher unter Speicherdruck freigegeben
9. INTERNAL_POOL – Unzureichender Arbeitsspeicher im internen Ressourcenpool
10. SYSTEM_POOL – Unzureichender Arbeitsspeicher in einem Systemressourcenpool
11. QUERY_MEMORY_GRANTS - OOM aufgrund großer Speichererteilungen, die von Abfragen gehalten werden
12. REPLICAS_AND_AVAILABILITY – OOM aufgrund von Workloads im SloSecSharedPool-Ressourcenpool
available_physical_memory_mb int, nicht NULL Verfügbarer physischer Arbeitsspeicher in Megabyte.
initial_job_object_memory_limit_mb int, null Grenzwert für auftragsobjektspeicher beim Starten des Datenbankmoduls in Megabyte. Weitere Informationen zu Auftragsobjekten finden Sie unter Ressourcengovernance.
current_job_object_memory_limit_mb int, null Aktuelle Speichergrenze des Auftragsobjekts in Megabyte.
process_memory_usage_mb int, nicht NULL Gesamtanzahl der Verarbeitungsspeicherauslastung in Megabyte nach der Instanz.
non_sos_memory_usage_mb int, nicht NULL Nicht-SOS-Verwendung in Megabyte, einschließlich SOS erstellter Threads, Threads, die von Nicht-SOS-Komponenten, geladenen DLLs usw. erstellt wurden.
committed_memory_target_mb int, nicht NULL SOS-Zielspeicher in Megabyte.
committed_memory_mb int, nicht NULL SOS hat Arbeitsspeicher in Megabytes zugesichert.
allocation_potential_memory_mb int, nicht NULL Arbeitsspeicher, der für die Datenbankmodulinstanz für neue Zuordnungen in Megabyte verfügbar ist.
oom_factor tinyint, nicht null Ein Wert, der zusätzliche Informationen im Zusammenhang mit dem OOM-Ereignis bereitstellt, nur für die interne Verwendung.
oom_factor_desc nvarchar(30), nicht NULL Beschreibung von oom_factor. Nur zur internen Verwendung. Eine der folgenden Optionen:
0 – UNDEFINED
1 - ALLOCATION_POTENTIAL
2 - BLOCK_ALLOCATOR
3 - ESCAPE_TIMEOUT
4 - FAIL_FAST
5 - MEMORY_POOL
6 - EMERGENCY_ALLOCATOR
7 - VIRTUAL_ALLOC
8 – SIMULIERT
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), null Ressourcenpools, die nicht genügend Arbeitsspeicher haben, einschließlich Speicherauslastungsstatistiken für jeden Pool. Diese Informationen werden als JSON-Wert bereitgestellt.
top_memory_clerks nvarchar(4000), null Die wichtigsten Speicherkaufleute nach Speicherverbrauch, einschließlich der Speicherauslastungsstatistiken für jeden Mitarbeiter. Diese Informationen werden als JSON-Wert bereitgestellt.
top_resource_pools nvarchar(4000), null Die wichtigsten Ressourcenpools nach Speicherverbrauch, einschließlich Der Speicherauslastungsstatistiken für jeden Ressourcenpool. Diese Informationen werden als JSON-Wert bereitgestellt.
possible_leaked_memory_clerks nvarchar(4000), null Speicherkaufleute, die Arbeitsspeicher verloren haben. Basierend auf Heuristiken und mit einem begrenzten Maß an Vertrauen. Diese Informationen werden als JSON-Wert bereitgestellt.
possible_non_sos_leaked_memory_mb int, null Wenn vorhanden, ist kein SOS-Speicher in Megabyte verloren. Basierend auf Heuristiken und mit einem begrenzten Maß an Vertrauen.

Berechtigungen

Für Azure SQL verwaltete Instanz ist die Berechtigung erforderlichVIEW SERVER PERFORMANCE STATE.

Für die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos oder die Mitgliedschaft in der ##MS_ServerPerformanceStateReader## Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE PERFORMANCE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerPerformanceStateReader##-Serverrolle erforderlich.

Hinweise

Jede Zeile in dieser Ansicht stellt ein Nichtspeicherereignis (OOM) dar, das im Datenbankmodul aufgetreten ist. Nicht alle OOM-Ereignisse werden möglicherweise erfasst. Ältere OOM-Ereignisse können aus dem Resultset verschwinden, da neuere OOM-Ereignisse auftreten. Das Resultset wird nicht über Neustarts des Datenbankmoduls hinweg beibehalten.

Derzeit ist dieser DMV sichtbar, wird jedoch in SQL Server 2022 (16.x) nicht unterstützt.

summarized_oom_snapshot erweitertes Ereignis

Das summarized_oom_snapshot erweiterte Ereignis ist Teil der system_health Ereignissitzung, um die Erkennung von Speicherereignissen zu vereinfachen. Jedes summarized_oom_snapshot erweiterte Ereignis entspricht einer Zeile in sys.dm_os_out_of_memory_events. Weitere Informationen finden Sie im Blog: Eine neue Möglichkeit zur Problembehandlung bei unzureichendem Arbeitsspeicher in der Datenbank-Engine.

Beispiel

Im folgenden Beispiel werden Ereignisdaten zurückgegeben, die nach der letzten Zeit für das Datenbankmodul sortiert wurden, in dem die aktuell verbundene Datenbank gehostet wird.

SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;