Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Retourne un ensemble d’événements de mémoire insuffisante (OOM) récents.
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 | Descriptif |
|---|---|---|
event_time |
datetime | Heure de l’événement OOM. Ne peut pas accepter la valeur Null. |
oom_cause |
tinyint | 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. Ne peut pas accepter la valeur Null. |
oom_cause_desc |
nvarchar(30) | Description de oom_cause. Ne peut pas accepter la valeur Null.0. UNKNOWN - La cause OOM n’a pas pu être déterminée1. 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ées3. OS_MEMORY_PRESSURE - OOM en raison de la pression de mémoire externe du système d’exploitation4. OS_MEMORY_PRESSURE_SQL - OOM en raison de la pression de mémoire externe provenant d’autres instances du moteur de base de données5. NON_SOS_MEMORY_LEAK - OOM en raison d’une fuite de mémoire non-SOS, par exemple, des modules chargés6. SERVERLESS_MEMORY_RECLAMATION - OOM lié à la récupération de la mémoire dans une base de données serverless7. MEMORY_LEAK - OOM en raison d’une fuite dans la mémoire SOS8. SLOW_BUFFER_POOL_SHRINK - OOM en raison du pool de mémoires tampons qui ne libère pas suffisamment de mémoire rapidement sous pression mémoire9. INTERNAL_POOL - Mémoire insuffisante dans le pool de ressources interne10. SYSTEM_POOL - Mémoire insuffisante dans un pool de ressources système11. QUERY_MEMORY_GRANTS - OOM en raison d’allocations de mémoire volumineuses détenues par les requêtes12. REPLICAS_AND_AVAILABILITY - OOM en raison de charges de travail dans le pool de ressources SloSecSharedPool |
available_physical_memory_mb |
Int | Mémoire physique disponible, en mégaoctets. Ne peut pas accepter la valeur Null. |
initial_job_object_memory_limit_mb |
Int | 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. Pouvant accepter la valeur Null. |
current_job_object_memory_limit_mb |
Int | Limite de mémoire actuelle de l’objet de travail, en mégaoctets. Pouvant accepter la valeur Null. |
process_memory_usage_mb |
Int | Utilisation totale de la mémoire du processus en mégaoctets par l’instance. Ne peut pas accepter la valeur Null. |
non_sos_memory_usage_mb |
Int | 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. N’est pas nullable. |
committed_memory_target_mb |
Int | Mémoire cible SOS en mégaoctets. Ne peut pas accepter la valeur Null. |
committed_memory_mb |
Int | Mémoire validée SOS en mégaoctets. Ne peut pas accepter la valeur Null. |
allocation_potential_memory_mb |
Int | Mémoire disponible pour l’instance du moteur de base de données pour les nouvelles allocations, en mégaoctets. Ne peut pas accepter la valeur Null. |
oom_factor |
tinyint | Valeur qui fournit des informations supplémentaires relatives à l’événement OOM, pour une utilisation interne uniquement. Ne peut pas accepter la valeur Null. |
oom_factor_desc |
nvarchar(30) | Description de oom_factor. Réservé exclusivement à un usage interne. Ne peut pas accepter la valeur Null.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) | 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. Pouvant accepter la valeur Null. |
top_memory_clerks |
nvarchar(4000) | 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. Pouvant accepter la valeur Null. |
top_resource_pools |
nvarchar(4000) | 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. Pouvant accepter la valeur Null. |
possible_leaked_memory_clerks |
nvarchar(4000) | 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. Pouvant accepter la valeur Null. |
possible_non_sos_leaked_memory_mb |
Int | 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. Pouvant accepter la valeur Null. |
autorisations
Sur Azure SQL Managed Instance, nécessite VIEW SERVER PERFORMANCE STATE une autorisation.
Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans les pools élastiques, le compte d’administration du serveur, le compte d’administration Microsoft Entra ou l’appartenance dans ##MS_ServerPerformanceStateReader## au rôle de serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE PERFORMANCE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerPerformanceStateReader## 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, ce DMV est visible mais non pris en charge dans SQL Server 2022 (16.x) et SQL Server 2025 (17.x).
summarized_oom_snapshot événement étendu
L’événement summarized_oom_snapshot étendu fait partie de la system_health session d’événements pour simplifier la détection des événements hors mémoire. Chaque summarized_oom_snapshot événement étendu correspond à une ligne dans sys.dm_os_out_of_memory_events. 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.
Exemples
Un. Obtenir tous les événements OOM disponibles
L’exemple suivant retourne toutes les données d’événement classées par l’heure la plus récente pour le moteur de base de données hébergeant la base de données actuellement connectée.
SELECT *
FROM sys.dm_os_out_of_memory_events
ORDER BY event_time DESC;
B. Obtenir les meilleurs commis de mémoire pour chaque événement OOM
L’exemple suivant retourne un sous-ensemble de données d’événement et développe les données JSON dans la top_memory_clerks colonne. Chaque ligne du jeu de résultats représente un commis de mémoire supérieur pour un événement OOM spécifique.
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;
Chapitre C. Obtenir les principaux pools de ressources pour chaque événement OOM
L’exemple suivant retourne un sous-ensemble de données d’événement et développe les données JSON dans la top_resource_pools colonne. Chaque ligne du jeu de résultats représente un pool de ressources supérieur pour un événement OOM spécifique.
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;
Contenu connexe
- sys.resource_stats
- sys.server_resource_stats
- sys.dm_db_resource_stats (Azure SQL Database)
- Optimiser les performances à l’aide de technologies en mémoire dans Azure SQL Database
- Optimiser les performances à l’aide de technologies en mémoire dans Azure SQL Managed Instance
- Surveiller le stockage OLTP en mémoire dans Azure SQL Database
- Surveiller le stockage OLTP en mémoire dans Azure SQL Managed Instance
- Résoudre les erreurs de mémoire insuffisante avec Azure SQL Database