sys.dm_os_out_of_memory_events
Gilt für: Azure SQL-Datenbank Azure SQL verwaltete Instanz
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 |
datetime2, nicht 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(60), 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 | Gesamtauslastung des Prozessspeichers 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-Zugesicherten Speicher in Megabyte |
allocation_potential_memory_mb |
int, nicht NULL | Für die Datenbankmodulinstanz verfügbarer Speicher für neue Zuordnungen in Megabyte |
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(60), 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(max), 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(max), nicht 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(max), nicht 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(max), 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 STATE
.
Für SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto, das Microsoft Entra-Administratorkonto oder die Mitgliedschaft in der ##MS_ServerStateReader##
Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE
-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##
-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 erweiterte summarized_oom_snapshot
-Ereignis ist Teil der bestehenden system_health
-Ereignissitzung und soll die Erkennung vereinfachen. Dieses Ereignis wird angezeigt, wenn nicht genügend Arbeitsspeicher (OOM)-Ereignisse erkannt werden. Dieser DMV richtet sich an die im summarized_oom_snapshot
erweiterten Ereignis aufgezeichneten Aktivitäten, die im Januar 2022 an Azure SQL-Datenbank eingeführt wurden. 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 die aktuell verbundene Datenbank sortiert wurden.
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 OLTP-Speichers im Arbeitsspeicher in azure SQL Managed Mnstance
- Behandeln von Fehlern mit unzureichendem Arbeitsspeicher mit Azure SQL-Datenbanken