Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:Azure SQL Database
Azure SQL Managed Instance
Database SQL in Microsoft Fabric
Restituisce un set di eventi di memoria insufficiente (OOM) recenti.
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 | Ora evento OOM. Non è annullabile. |
oom_cause |
tinyint | 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à. Non è annullabile. |
oom_cause_desc |
nvarchar(30) | Descrizione di oom_cause. Non è annullabile.0. UNKNOWN Non è stato possibile determinare la causa OOM1. 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 database3. OS_MEMORY_PRESSURE OOM a causa di una pressione di memoria esterna dal sistema operativo4. OS_MEMORY_PRESSURE_SQL OOM a causa di una pressione di memoria esterna da altre istanze del motore di database5. NON_SOS_MEMORY_LEAK - OOM a causa di una perdita di memoria non SOS, ad esempio moduli caricati6. SERVERLESS_MEMORY_RECLAMATION OOM correlato al recupero della memoria in un database serverless7. MEMORY_LEAK - OOM a causa di una perdita di memoria SOS8. SLOW_BUFFER_POOL_SHRINK OOM a causa del pool di buffer che non rilascia memoria abbastanza velocemente sotto pressione di memoria9. INTERNAL_POOL Memoria insufficiente nel pool di risorse interno10. SYSTEM_POOL Memoria insufficiente in un pool di risorse di sistema11. QUERY_MEMORY_GRANTS OOM a causa di concessioni di memoria di grandi dimensioni mantenute dalle query12. REPLICAS_AND_AVAILABILITY - OOM a causa di carichi di lavoro nel pool di risorse SloSecSharedPool |
available_physical_memory_mb |
Int | Memoria fisica disponibile, in megabyte. Non è annullabile. |
initial_job_object_memory_limit_mb |
Int | Limite di memoria dell'oggetto processo all'avvio del motore di database, in megabyte. Per altre informazioni sugli oggetti processo, vedere Governance delle risorse. Ammette valori Null. |
current_job_object_memory_limit_mb |
Int | Limite di memoria corrente dell'oggetto processo, espresso in megabyte. Ammette valori Null. |
process_memory_usage_mb |
Int | Utilizzo totale della memoria del processo in megabyte dall'istanza. Non è annullabile. |
non_sos_memory_usage_mb |
Int | Utilizzo non SOS in megabyte, inclusi i thread creati da SOS, i thread creati da componenti non SOS, DLL caricate e così via. Non è nullable. |
committed_memory_target_mb |
Int | Memoria di destinazione SOS in megabyte. Non è annullabile. |
committed_memory_mb |
Int | Memoria di cui è stato eseguito il commit soS in megabyte. Non è annullabile. |
allocation_potential_memory_mb |
Int | Memoria disponibile per l'istanza del motore di database per le nuove allocazioni, in megabyte. Non è annullabile. |
oom_factor |
tinyint | Valore che fornisce informazioni aggiuntive relative all'evento OOM, solo per uso interno. Non è annullabile. |
oom_factor_desc |
nvarchar(30) | Descrizione di oom_factor. Solo per uso interno. Non è annullabile.0 - UNDEFINED1 - ALLOCATION_POTENTIAL2 - BLOCK_ALLOCATOR3 - ESCAPE_TIMEOUT4 - FAIL_FAST5 - MEMORY_POOL6 - EMERGENCY_ALLOCATOR7 - VIRTUAL_ALLOC8 - SIMULATED9 - BUF_ALLOCATOR10 - QUERY_MEM_QUEUE11 - FRAGMENT12 - INIT_DESCRIPTOR13 - MEMORY_POOL_PRESSURE14 - DESCRIPTOR_ALLOCATOR15 - DESCRIPTOR_ALLOCATOR_ESCAPE |
oom_resource_pools |
nvarchar(4000) | Pool di risorse in memoria insufficiente, incluse le statistiche di utilizzo della memoria per ogni pool. Queste informazioni vengono fornite come valore JSON. Ammette valori Null. |
top_memory_clerks |
nvarchar(4000) | Top memory clerks by memory consumption , incluse le statistiche di utilizzo della memoria per ogni clerk. Queste informazioni vengono fornite come valore JSON. Ammette valori Null. |
top_resource_pools |
nvarchar(4000) | 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. Ammette valori Null. |
possible_leaked_memory_clerks |
nvarchar(4000) | Clerk di memoria con memoria persa. Basato sull'euristica e fornito con un grado finito di fiducia. Queste informazioni vengono fornite come valore JSON. Ammette valori Null. |
possible_non_sos_leaked_memory_mb |
Int | Memoria non SOS persa in megabyte, se presente. Basato sull'euristica e fornito con un grado finito di fiducia. Ammette valori Null. |
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.
Attualmente, questo DMV è visibile ma non supportato in SQL Server 2022 (16.x) e SQL Server 2025 (17.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.
Esempi
Un. Ottenere tutti gli eventi OOM disponibili
Nell'esempio seguente vengono restituiti tutti 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;
B. Ottenere i migliori clek di memoria per ogni evento OOM
L'esempio seguente restituisce un subset di dati dell'evento ed espande i dati JSON nella top_memory_clerks colonna. Ogni riga nel set di risultati rappresenta un clerk di memoria superiore per un evento OOM specifico.
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. Ottenere i pool di risorse principali per ogni evento OOM
L'esempio seguente restituisce un subset di dati dell'evento ed espande i dati JSON nella top_resource_pools colonna. Ogni riga nel set di risultati rappresenta un pool di risorse principale per un evento OOM specifico.
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;
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