Monitor de actividad que muestra larga duración para WAITFOR RECEIVE

8

En el Monitor de actividad, la siguiente consulta está causando una CPU alta y una duración promedio de 281 ms.

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

¿Alguna idea o pasos para resolver esto?

Ankit Shah
fuente
Te veo publicado en SSC también. ¿Seguiste alguno de los pasos proporcionados a ese usuario? por ejemplo, mirar a través de los registros?
swasheck

Respuestas:

11

Este es un arenque rojo. WAITFOR (RECEIVE...)se supone por definición que ... ¡espere mensajes! Por lo tanto, transcurrieron 281 segundos simplemente significa que durante 281 segundos no hubo ningún mensaje para recibir. En este caso, la aplicación es el proceso de envío externo del Correo electrónico de base de datos que está inactivo esperando que los mensajes se pongan en cola (es decir, espera a sp_send_db_mailque se llame). No hay nada que "resolver" aquí.

Remus Rusanu
fuente
Sí, de acuerdo completamente, ¡en el clavo!
Peter Schofield