sys.dm_os_out_of_memory_events
Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure
Restituisce un log di eventi di memoria insufficiente (OOM).
Per altre informazioni sulle condizioni di memoria insufficiente in database SQL di Azure, vedere Risolvere gli errori di memoria insufficiente in database SQL di Azure.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
event_time |
datetime, non null | Ora evento OOM. |
oom_cause |
tinyint, non null | Valore numerico che indica la causa radice OOM. La causa OOM è determinata da un algoritmo euristico e viene fornita con un grado finito di attendibilità. |
oom_cause_desc |
nvarchar(30), non null | Descrizione di oom_cause , uno dei seguenti:0. SCONOSCIUTO - Impossibile determinare la causa OOM 1. HEKATON_POOL_MEMORY_LOW - Memoria insufficiente nel pool di risorse usato per OLTP in memoria. Per altre informazioni, vedere Monitorare OLTP in memoria. 2. MEMORY_LOW - Memoria insufficiente disponibile per il processo del motore di database 3. OS_MEMORY_PRESSURE - OOM a causa di una pressione di memoria esterna dal sistema operativo 4. OS_MEMORY_PRESSURE_SQL - OOM a causa di una pressione di memoria esterna da altre istanze del motore di database 5. NON_SOS_MEMORY_LEAK - OOM a causa di una perdita di memoria non SOS, ad esempio moduli caricati 6. SERVERLESS_MEMORY_RECLAMATION - OOM correlato al recupero della memoria in un database serverless 7. MEMORY_LEAK - OOM a causa di una perdita di memoria SOS 8. SLOW_BUFFER_POOL_SHRINK - OOM a causa del pool di buffer che non rilascia memoria abbastanza velocemente sotto pressione di memoria 9. INTERNAL_POOL - Memoria insufficiente nel pool di risorse interno 10. SYSTEM_POOL - Memoria insufficiente in un pool di risorse di sistema 11. QUERY_MEMORY_GRANTS - OOM a causa di concessioni di memoria di grandi dimensioni mantenute dalle query 12. REPLICAS_AND_AVAILABILITY - OOM a causa di carichi di lavoro nel pool di risorse SloSecSharedPool |
available_physical_memory_mb |
int, non null | Memoria fisica disponibile, in megabyte. |
initial_job_object_memory_limit_mb |
int, null | Limite di memoria dell'oggetto processo all'avvio del motore di database, in megabyte. Per altre informazioni sugli oggetti processo, vedere Governance delle risorse. |
current_job_object_memory_limit_mb |
int, null | Limite di memoria corrente dell'oggetto processo, espresso in megabyte. |
process_memory_usage_mb |
int, non null | Utilizzo totale della memoria del processo in megabyte dall'istanza. |
non_sos_memory_usage_mb |
int, non null | Utilizzo non SOS in megabyte, inclusi i thread creati da SOS, i thread creati da componenti non SOS, DLL caricate e così via. |
committed_memory_target_mb |
int, non null | Memoria di destinazione SOS in megabyte. |
committed_memory_mb |
int, non null | Memoria di cui è stato eseguito il commit soS in megabyte. |
allocation_potential_memory_mb |
int, non null | Memoria disponibile per l'istanza del motore di database per le nuove allocazioni, in megabyte. |
oom_factor |
tinyint, non null | Valore che fornisce informazioni aggiuntive relative all'evento OOM, solo per uso interno. |
oom_factor_desc |
nvarchar(30), non null | Descrizione di oom_factor . Solo per uso interno. Uno dei valori possibili:0 - UNDEFINED 1 - ALLOCATION_POTENTIAL 2 - BLOCK_ALLOCATOR 3 - ESCAPE_TIMEOUT 4 - FAIL_FAST 5 - MEMORY_POOL 6 - EMERGENCY_ALLOCATOR 7 - VIRTUAL_ALLOC 8 - SIMULATO 9 - BUF_ALLOCATOR 10 - QUERY_MEM_QUEUE 11 - FRAMMENTO 12 - INIT_DESCRIPTOR 13 - MEMORY_POOL_PRESSURE 14 - DESCRIPTOR_ALLOCATOR 15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(4000), null | Pool di risorse in memoria insufficiente, incluse le statistiche di utilizzo della memoria per ogni pool. Queste informazioni vengono fornite come valore JSON. |
top_memory_clerks |
nvarchar(4000), null | Top memory clerks by memory consumption , incluse le statistiche di utilizzo della memoria per ogni clerk. Queste informazioni vengono fornite come valore JSON. |
top_resource_pools |
nvarchar(4000), null | Pool di risorse principali in base al consumo di memoria, incluse le statistiche di utilizzo della memoria per ogni pool di risorse. Queste informazioni vengono fornite come valore JSON. |
possible_leaked_memory_clerks |
nvarchar(4000), null | Clerk di memoria con memoria persa. Basato sull'euristica e fornito con un grado finito di fiducia. Queste informazioni vengono fornite come valore JSON. |
possible_non_sos_leaked_memory_mb |
int, null | Memoria non SOS persa in megabyte, se presente. Basato sull'euristica e fornito con un grado finito di fiducia. |
Autorizzazioni
In Istanza gestita di SQL di Azure, è necessaria VIEW SERVER PERFORMANCE STATE
l'autorizzazione.
Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerPerformanceStateReader##
al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE PERFORMANCE STATE
per il database o l'adesione ruolo del server ##MS_ServerPerformanceStateReader##
.
Osservazioni:
Ogni riga in questa vista rappresenta un evento di memoria insufficiente (OOM) che si è verificato nel motore di database. Non tutti gli eventi OOM potrebbero essere acquisiti. Gli eventi OOM meno recenti possono scomparire dal set di risultati man mano che si verificano eventi OOM più recenti. Il set di risultati non viene salvato in modo permanente tra i riavvii del motore di database.
Questa DMV è attualmente visibile ma non supportata in SQL Server 2022 (16.x).
summarized_oom_snapshot evento esteso
L'evento summarized_oom_snapshot
esteso fa parte della sessione eventi per semplificare il system_health
rilevamento degli eventi di memoria insufficiente. Ogni summarized_oom_snapshot
evento esteso corrisponde a una riga in sys.dm_os_out_of_memory_events
. Per altre informazioni, vedere Blog: Un nuovo modo per risolvere gli errori di memoria insufficiente nel motore di database.
Esempio
Nell'esempio seguente vengono restituiti i dati dell'evento ordinati in base all'ora più recente per il motore di database che ospita il database attualmente connesso.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
Contenuto correlato
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (database SQL di Azure)
- Ottimizzare le prestazioni usando tecnologie in memoria in database SQL di Azure
- Ottimizzare le prestazioni usando tecnologie in memoria in Istanza gestita di SQL di Azure
- Monitorare l'archiviazione OLTP in memoria nel database SQL di Azure
- Monitorare l'archiviazione OLTP in memoria in Istanza gestita di SQL di Azure
- Risolvere i problemi relativi a errori di memoria insufficiente con il database SQL di Azure