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

标签 c# sql-server websocket sql-server-2014

我正在使用 C# 中的 websocket。但是我的应用程序变慢了。然后我寻找原因。并且,我们从数据库日志中找到以下查询。此查询(使用不同的 guid)在 1 小时内运行了 75 次。而且每次查询都需要很长时间。我认为它正在锁定我的数据库。这是什么查询?为什么需要很长时间? “开始对话计时器”是什么意思?

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 分钟后停止等待消息。查询缓慢的一种可能解释是,相应队列中没有消息,它们等待新消息到来,直到超时。

关于c# - Websocket 在 mssqlserver 中每分钟运行一次查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190456/

相关文章:

java - 为 WebSocketHandlerDecorator 编写测试 - Delegate 不能为 null

node.js - 页面刷新时不会触发 React 客户端上的 Socket.io 断开连接

c# - 无法在 Visual Studio 2015 Community Edition 中打开 Windows Phone 8.1 项目

C# 数据表问题

sql - 基于日期字段更新表而不使用sql循环

sql - 在sql中使用左外连接过滤记录

android - 如何在 Android 上将 socket.io 作为连续服务运行而无需 sleep 或暂停?

c# - 如何通过父控件中的事件为子控件设置动画? - 可重复使用的方式

c# - 是否可以在子类上定义成员而不在抽象父类上定义它? C#

sql - 需要有关 SQL 中复杂排序的帮助