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;
Zugehöriger Inhalt
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (Azure SQL-Datenbank)
- Optimieren der Leistung mithilfe von In-Memory-Technologien in Azure SQL-Datenbank
- Optimieren der Leistung mithilfe von In-Memory-Technologien in Azure SQL verwaltete Instanz
- Überwachen des In-Memory-OLTP-Speichers in Azure SQL-Datenbank
- Überwachen des In-Memory-OLTP-Speichers in Azure SQL Managed Instance
- Behandeln von Fehlern mit unzureichendem Arbeitsspeicher mit Azure SQL-Datenbanken