Websocket在mssqlserver中每分钟运行一次查询



我正在使用C#中的websocket。但我的申请速度变慢了。然后我寻找原因。并且,我们从数据库日志中找到以下查询。此查询(具有不同的guid(在1小时内工作了75次。而且每个查询都需要很长时间。我认为它正在锁定我的数据库。这个查询是什么?为什么要花很长时间?"begin conversation timer"是什么意思?

exec sp_executesql N'BEGIN CONVERSATION TIMER (''20a12dae-6fe1-e811-80d7-7ca23e8b6dfb'') 
TIMEOUT = 120; WAITFOR(RECEIVE TOP (1) message_type_name, 
conversation_handle, cast(message_body AS XML) as message_body 
from [SqlQueryNotificationService-fe5c857f-d91d-4db0-b6c5-29313929031c])
, TIMEOUT @p2;',N'@p2 int',@p2=60000

此查询尝试从Service Broker队列获取消息。使用BEGIN CONVERSATION TIMER,它将超时设置为2分钟(120秒(。如果队列中没有任何内容,它将在2分钟后停止等待消息。查询速度慢的一种可能解释是,在相应的队列中没有消息,它们等待新消息的到来,直到超时。

最新更新