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?
sql-server
service-broker
Ankit Shah
sumber
sumber
Jawaban:
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 untuksp_send_db_mail
dipanggil). Tidak ada yang perlu 'diselesaikan' di sini.sumber