Aktivitätsmonitor mit langer Dauer für WAITFOR RECEIVE


8

Im Aktivitätsmonitor verursacht die folgende Abfrage eine hohe CPU und eine durchschnittliche Dauer von 281 ms.

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

Irgendwelche Ideen oder Schritte, wie man das löst?


Ich sehe dich auch auf SSC gepostet. Haben Sie einen der Schritte ausgeführt, die diesem Benutzer bereitgestellt wurden? zB durch die Protokolle schauen?
Swasheck

Antworten:


10

Dies ist ein roter Hering. WAITFOR (RECEIVE...)soll per definitionem ... auf nachrichten warten! Daher bedeutet 281 Sekunden einfach, dass 281 Sekunden lang keine Nachricht zu empfangen war. In diesem Fall ist die Anwendung der externe Sendeprozess von Database Mail, der im Leerlauf wartet und darauf wartet, dass Nachrichten in die Warteschlange gestellt werden (dh darauf warten sp_send_db_mail, dass sie aufgerufen werden). Hier gibt es nichts zu "lösen".


Ja, stimme vollkommen zu - genau richtig!
Peter Schofield
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.