sys.dm_exec_query_resource_semaphores (Transact-SQL)
Retourne les informations relatives à l'état actuel du sémaphore de ressources de requête. sys.dm_exec_query_resource_semaphores fournit des informations générales sur l'état de mémoire d'exécution de requête et vous permet de déterminer si le système est en mesure d'accéder à une quantité de mémoire suffisante. Cette vue vient s'ajouter aux informations de mémoire obtenues à partir de sys.dm_os_memory_clerks pour fournir une image complète de l'état de mémoire du serveur. sys.dm_exec_query_resource_semaphores retourne une ligne pour le sémaphore de ressource ordinaire et une autre ligne pour le sémaphore de ressource de petites requêtes
Nom de la colonne |
Type de données |
Description |
---|---|---|
resource_semaphore_id |
smallint |
ID non unique du sémaphore de ressource. 0 pour le sémaphore de ressource ordinaire et 1 pour le sémaphore de ressource de petites requêtes.
Remarque
Cet ID est unique dans les versions de SQL Server antérieures à SQL Server 2008. Cette modification peut affecter l'exécution de la requête de résolution des problèmes. Pour plus d'informations, consultez la section « Remarques », plus loin dans cette rubrique.
|
target_memory_kb |
bigint |
Cible d'allocation d'utilisation en kilo-octets. |
max_target_memory_kb |
bigint |
Cible maximale potentielle en kilo-octets. NULL pour le sémaphore de ressource de petites requêtes. |
total_memory_kb |
bigint |
Mémoire détenue par le sémaphore de ressource, en kilo-octets. Si le système subit une sollicitation de la mémoire ou si la mémoire minimale forcée est fréquemment allouée, cette valeur peut être supérieure à la valeur target_memory_kb ou max_target_memory_kb. La mémoire totale est la somme de la mémoire disponible et de la mémoire allouée. |
available_memory_kb |
bigint |
Mémoire disponible pour une nouvelle allocation, en kilo-octets. |
granted_memory_kb |
bigint |
Mémoire totale allouée, en kilo-octets. |
used_memory_kb |
bigint |
Partie de la mémoire allouée utilisée physiquement, en kilo-octets. |
grantee_count |
int |
Nombre de requêtes actives dont l'allocation est satisfaite. |
waiter_count |
int |
Nombre de requêtes attendant que leur allocation soit satisfaite. |
timeout_error_count |
bigint |
Nombre total d'erreurs de dépassement de délai d'attente depuis le démarrage du serveur. NULL pour le sémaphore de ressource de petites requêtes. |
forced_grant_count |
bigint |
Nombre total d'allocations de mémoire minimale forcées depuis le démarrage du serveur. NULL pour le sémaphore de ressource de petites requêtes. |
pool_id |
int |
ID du pool de ressources auquel ce sémaphore de ressource appartient. |
Autorisations
Nécessite l'autorisation VIEW SERVER STATE sur le serveur.
Notes
Les requêtes qui utilisent des vues de gestion dynamiques qui incluent ORDER BY ou des fonctions d'agrégation peuvent accroître la consommation de mémoire et par conséquent contribuer au problème qu'elles tentent de résoudre.
Utilisez sys.dm_exec_query_resource_semaphores pour le dépannage, mais ne l'incluez pas dans des applications qui utiliseront des versions ultérieures de SQL Server.
La fonctionnalité Gouverneur de ressources permet à un administrateur de base de données de répartir des ressources serveur entre plusieurs pools de ressources (20 pools au maximum). Dans SQL Server 2008, chaque pool se comporte comme une petite instance de serveur indépendante et requiert 2 sémaphores. Le nombre de lignes retournées de sys.dm_exec_query_resource_semaphores peut être jusqu'à 20 fois supérieur au nombre de lignes retournées dans SQL Server 2005.