web-dev-qa-db-fra.com

Moniteur d'activités montrant une longue durée pour WAITFOR Recevoir

Dans le moniteur d'activité, la requête suivante provoque une durée moyenne élevée du processeur et de 281 ms.

WAITFOR (
RECEIVE conversation_handle
    , service_contract_name
    , message_type_name
    , message_body 
FROM ExternalMailQueue 
INTO @msgs
)
, TIMEOUT @rec_timeout

Avez-vous une idée ou des mesures pour résoudre ce problème?

8
Ankit Shah

Ceci est un hareng rouge. WAITFOR (RECEIVE...) est par définition supposée ... Attendez les messages! Par conséquent, 281 secondes sont simplement écoulées signifie simplement que pendant 281 secondes, aucun message n'est reçu. Dans ce cas, l'application est le processus d'envoi externe du courrier de la base de données assis attendant que les messages soient en cours (c.-à-d. Attendent sp_send_db_mail à appeler). Il n'y a rien à "résoudre" ici.

10
Remus Rusanu