sys.dm_os_out_of_memory_events

S’applique à : Azure SQL DatabaseAzure SQL Managed Instance

Retourne un journal des événements de mémoire insuffisante (OOM).

Pour plus d’informations sur les conditions de mémoire insuffisante dans Azure SQL Database, consultez Résoudre les erreurs de mémoire insuffisante dans Azure SQL Database.

Nom de la colonne Type de données Description
event_time datetime2, non null Heure de l’événement OOM
oom_cause tinyint, pas null Valeur numérique indiquant la cause racine OOM. La cause OOM est déterminée par un algorithme heuristique et est fournie avec un degré fini de confiance.
oom_cause_desc nvarchar(60), pas null Description de oom_cause, l’une des suivantes :
0. INCONNU - La cause OOM n’a pas pu être déterminée
1. HEKATON_POOL_MEMORY_LOW - Mémoire insuffisante dans le pool de ressources utilisé pour OLTP en mémoire. Pour plus d’informations, consultez Monitor In-Memory OLTP.
2. MEMORY_LOW - Mémoire insuffisante disponible pour le processus du moteur de base de données
3. OS_MEMORY_PRESSURE - OOM en raison de la pression de mémoire externe du système d’exploitation
4. OS_MEMORY_PRESSURE_SQL - OOM en raison de la pression de mémoire externe provenant d’autres instances du moteur de base de données
5. NON_SOS_MEMORY_LEAK - OOM en raison d’une fuite de mémoire non SOS, par exemple, des modules chargés
6. SERVERLESS_MEMORY_RECLAMATION - OOM lié à la récupération de la mémoire dans une base de données serverless
7. MEMORY_LEAK - OOM en raison d’une fuite de mémoire SOS
8. SLOW_BUFFER_POOL_SHRINK - OOM en raison du pool de mémoires tampons qui ne libère pas suffisamment de mémoire rapide sous pression mémoire
9. INTERNAL_POOL - Mémoire insuffisante dans le pool de ressources interne
10. SYSTEM_POOL - Mémoire insuffisante dans un pool de ressources système
11. QUERY_MEMORY_GRANTS - OOM en raison d’allocations de mémoire volumineuses détenues par les requêtes
12. REPLICAS_AND_AVAILABILITY - OOM en raison de charges de travail dans le pool de ressources SloSecSharedPool
available_physical_memory_mb int, non null Mémoire physique disponible, en mégaoctets
initial_job_object_memory_limit_mb int, null Limite de mémoire de l’objet de travail au démarrage du moteur de base de données, en mégaoctets. Pour plus d’informations sur les objets de travail, consultez Gouvernance des ressources.
current_job_object_memory_limit_mb int, null Limite de mémoire actuelle de l’objet job, en mégaoctets
process_memory_usage_mb int, non null Utilisation totale de la mémoire du processus en mégaoctets par l’instance
non_sos_memory_usage_mb int, non null Utilisation non-SOS en mégaoctets, y compris les threads créés par SOS, les threads créés par des composants non-SOS, les DLL chargées, etc.
committed_memory_target_mb int, non null Mémoire cible SOS en mégaoctets
committed_memory_mb int, non null Mémoire validée SOS en mégaoctets
allocation_potential_memory_mb int, non null Mémoire disponible pour l’instance du moteur de base de données pour les nouvelles allocations, en mégaoctets
oom_factor tinyint, pas null Valeur qui fournit des informations supplémentaires relatives à l’événement OOM, pour une utilisation interne uniquement
oom_factor_desc nvarchar(60), pas null Description de oom_factor. Réservé exclusivement à un usage interne. Valeurs possibles :
0 - UNDEFINED
1 - ALLOCATION_POTENTIAL
2 - BLOCK_ALLOCATOR
3 - ESCAPE_TIMEOUT
4 - FAIL_FAST
5 - MEMORY_POOL
6 - EMERGENCY_ALLOCATOR
7 - VIRTUAL_ALLOC
8 - SIMULÉ
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 Pools de ressources hors mémoire, y compris les statistiques d’utilisation de la mémoire pour chaque pool. Ces informations sont fournies sous forme de valeur JSON.
top_memory_clerks nvarchar(max), pas null Principaux commis de mémoire par consommation de mémoire, y compris les statistiques d’utilisation de la mémoire pour chaque commis. Ces informations sont fournies sous forme de valeur JSON.
top_resource_pools nvarchar(max), pas null Principaux pools de ressources par consommation de mémoire, y compris les statistiques d’utilisation de la mémoire pour chaque pool de ressources. Ces informations sont fournies sous forme de valeur JSON.
possible_leaked_memory_clerks nvarchar(max), null Commis de mémoire qui ont fui la mémoire. Basé sur l’heuristique et fourni avec un degré fini de confiance. Ces informations sont fournies sous forme de valeur JSON.
possible_non_sos_leaked_memory_mb int, null Mémoire non SOS divulguée en mégaoctets, le cas échéant. Basé sur l’heuristique et fourni avec un degré fini de confiance.

Autorisations

Sur Azure SQL Managed Instance, nécessite VIEW SERVER STATE une autorisation.

Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d’administrateur du serveur, le compte d’administrateur Microsoft Entra ou l’appartenance au ##MS_ServerStateReader##rôle serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.

Notes

Chaque ligne de cette vue représente un événement de mémoire insuffisante (OOM) qui s’est produit dans le moteur de base de données. Tous les événements OOM ne peuvent pas être capturés. Les événements OOM plus anciens peuvent disparaître du jeu de résultats à mesure que des événements OOM plus récents se produisent. Le jeu de résultats n’est pas conservé entre les redémarrages du moteur de base de données.

Actuellement, cette vue dynamique est visible, mais pas prise en charge dans SQL Server 2022 (16.x).

summarized_oom_instantané événement étendu

L’événement étendu summarized_oom_snapshot fait partie de la session d’événements system_health existante pour simplifier la détection. Cet événement s’affiche lorsque des événements de mémoire insuffisante (OOM) sont détectés. Cette vue DMV s’aligne sur l’activité enregistrée dans l’événement summarized_oom_snapshot étendu, introduite dans Azure SQL Database en janvier 2022. Pour plus d’informations, consultez Blog : une nouvelle méthode de résolution des erreurs de mémoire insuffisante dans le moteur de base de données.

Exemple

L’exemple suivant retourne les données d’événement classées par heure la plus récente pour la base de données actuellement connectée.

SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;