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

Websocket running query every minute in 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 queue. With BEGIN CONVERSATION TIMER 获取一条消息,它将超时设置为 2 分钟(120 秒)。如果队列中没有任何消息,它将在 2 分钟后停止等待消息。您的查询速度慢的一种可能解释是,相应队列中没有消息,它们等待新消息到来,直到超时。