Monitor Aktivitas menunjukkan durasi yang lama untuk WAITFOR RECEIVE


8

Di Monitor Aktivitas, kueri berikut menyebabkan CPU tinggi dan durasi rata-rata 281 ms.

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

Adakah ide atau langkah bagaimana menyelesaikannya?


Saya melihat Anda diposting di SSC juga. Apakah Anda mengikuti salah satu langkah yang disediakan untuk pengguna itu? misalnya melihat melalui log?
swasheck

Jawaban:


11

Ini adalah herring merah. WAITFOR (RECEIVE...)menurut definisi seharusnya ... menunggu pesan! Oleh karena itu 281 detik berlalu hanya berarti bahwa selama 281 detik tidak ada pesan untuk diterima. Dalam hal ini aplikasinya adalah proses pengiriman eksternal Basis Data Mail yang duduk diam menunggu pesan yang akan dikirim (mis. Menunggu untuk sp_send_db_maildipanggil). Tidak ada yang perlu 'diselesaikan' di sini.


Yap, setuju sepenuhnya - tepat!
Peter Schofield
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.