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.

RemarqueRemarque
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.