Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
Azure SQL Managed Instance
Gibt einen Satz zuletzt nicht genügend Arbeitsspeicher (OOM)-Ereignisse 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 | OOM-Ereigniszeit. Nicht nullbar. |
oom_cause |
tinyint | 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. Nicht nullbar. |
oom_cause_desc |
nvarchar(30) | Beschreibung von oom_cause . Nicht nullbar.0. UNKNOWN - OOM-Ursache konnte nicht bestimmt werden1. 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ügbar3. OS_MEMORY_PRESSURE - OOM aufgrund des externen Speicherdrucks vom Betriebssystem4. OS_MEMORY_PRESSURE_SQL – OOM aufgrund des externen Speicherdrucks anderer Datenbankmodulinstanzen5. - OOM aufgrund eines Lecks im Nicht-SOS-Speicher, z. B. NON_SOS_MEMORY_LEAK geladene Module6. SERVERLESS_MEMORY_RECLAMATION – OOM im Zusammenhang mit der Speicherbekundung in einer serverlosen Datenbank7. MEMORY_LEAK - OOM aufgrund eines Lecks im SOS-Speicher8. SLOW_BUFFER_POOL_SHRINK - OOM aufgrund des Pufferpools nicht schnell genug Arbeitsspeicher unter Speicherdruck freigeben9. INTERNAL_POOL – Unzureichender Arbeitsspeicher im internen Ressourcenpool10. SYSTEM_POOL – Unzureichender Arbeitsspeicher in einem Systemressourcenpool11. QUERY_MEMORY_GRANTS - OOM aufgrund großer Speichererteilungen, die von Abfragen gehalten werden12. REPLICAS_AND_AVAILABILITY – OOM aufgrund von Workloads im SloSecSharedPool-Ressourcenpool |
available_physical_memory_mb |
Int | Verfügbarer physischer Arbeitsspeicher in Megabyte. Nicht nullbar. |
initial_job_object_memory_limit_mb |
Int | Grenzwert für auftragsobjektspeicher beim Starten des Datenbankmoduls in Megabyte. Weitere Informationen zu Auftragsobjekten finden Sie unter Ressourcengovernance. NULL-Werte sind zulässig. |
current_job_object_memory_limit_mb |
Int | Aktuelle Speichergrenze des Auftragsobjekts in Megabyte. NULL-Werte sind zulässig. |
process_memory_usage_mb |
Int | Gesamtanzahl der Verarbeitungsspeicherauslastung in Megabyte nach der Instanz. Nicht nullbar. |
non_sos_memory_usage_mb |
Int | Nicht-SOS-Verwendung in Megabyte, einschließlich SOS erstellter Threads, Threads, die von Nicht-SOS-Komponenten, geladenen DLLs usw. erstellt wurden. Kann nicht null sein. |
committed_memory_target_mb |
Int | SOS-Zielspeicher in Megabyte. Nicht nullbar. |
committed_memory_mb |
Int | SOS hat Arbeitsspeicher in Megabytes zugesichert. Nicht nullbar. |
allocation_potential_memory_mb |
Int | Arbeitsspeicher, der für die Datenbankmodulinstanz für neue Zuordnungen in Megabyte verfügbar ist. Nicht nullbar. |
oom_factor |
tinyint | Ein Wert, der zusätzliche Informationen im Zusammenhang mit dem OOM-Ereignis bereitstellt, nur für die interne Verwendung. Nicht nullbar. |
oom_factor_desc |
nvarchar(30) | Beschreibung von oom_factor . Nur zur internen Verwendung. Nicht nullbar.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) | Ressourcenpools, die nicht genügend Arbeitsspeicher haben, einschließlich Speicherauslastungsstatistiken für jeden Pool. Diese Informationen werden als JSON-Wert bereitgestellt. NULL-Werte sind zulässig. |
top_memory_clerks |
nvarchar(4000) | Die wichtigsten Speicherkaufleute nach Speicherverbrauch, einschließlich der Speicherauslastungsstatistiken für jeden Mitarbeiter. Diese Informationen werden als JSON-Wert bereitgestellt. NULL-Werte sind zulässig. |
top_resource_pools |
nvarchar(4000) | Die wichtigsten Ressourcenpools nach Speicherverbrauch, einschließlich Der Speicherauslastungsstatistiken für jeden Ressourcenpool. Diese Informationen werden als JSON-Wert bereitgestellt. NULL-Werte sind zulässig. |
possible_leaked_memory_clerks |
nvarchar(4000) | Speicherkaufleute, die Arbeitsspeicher verloren haben. Basierend auf Heuristiken und mit einem begrenzten Maß an Vertrauen. Diese Informationen werden als JSON-Wert bereitgestellt. NULL-Werte sind zulässig. |
possible_non_sos_leaked_memory_mb |
Int | Wenn vorhanden, ist kein SOS-Speicher in Megabyte verloren. Basierend auf Heuristiken und mit einem begrenzten Maß an Vertrauen. NULL-Werte sind zulässig. |
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) und SQL Server 2025 (17.x) Preview 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.
Beispiele
Ein. Abrufen aller verfügbaren OOM-Ereignisse
Im folgenden Beispiel werden alle 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;
B. Abrufen der wichtigsten Speicherbearbeiter für jedes OOM-Ereignis
Im folgenden Beispiel wird eine Teilmenge von Ereignisdaten zurückgegeben und die JSON-Daten in der top_memory_clerks
Spalte erweitert. Jede Zeile im Resultset stellt einen obersten Speicherbearbeiter für ein bestimmtes OOM-Ereignis dar.
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. Abrufen der wichtigsten Ressourcenpools für jedes OOM-Ereignis
Im folgenden Beispiel wird eine Teilmenge von Ereignisdaten zurückgegeben und die JSON-Daten in der top_resource_pools
Spalte erweitert. Jede Zeile im Resultset stellt einen top-Ressourcenpool für ein bestimmtes OOM-Ereignis dar.
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;
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