Dans le Moniteur d'activité, la requête suivante provoque un processeur élevé et une durée moyenne de 281 ms.
WAITFOR (
RECEIVE conversation_handle
, service_contract_name
, message_type_name
, message_body
FROM ExternalMailQueue
INTO @msgs
)
, TIMEOUT @rec_timeout
Une idée ou des étapes pour résoudre ce problème?
sql-server
service-broker
Ankit Shah
la source
la source
Réponses:
Ceci est un hareng rouge.
WAITFOR (RECEIVE...)
est par définition censé ... attendre les messages! Par conséquent, 281 secondes se sont écoulées, cela signifie simplement que pendant 281 secondes, aucun message n'a été reçu. Dans ce cas, l'application est le processus d'envoi externe de la messagerie de base de données qui reste inactif en attendant que les messages soient mis en file d'attente (c'est-à-dire en attentesp_send_db_mail
d'être appelé). Il n'y a rien à «résoudre» ici.la source