sql-server - Transact SQL 中存储过程的并行执行

标签 sql-server sql-server-2008 service-broker

大家好,

我想在 SQL Server 2008 中并行执行存储过程。我不会使用任何外部工具(SSIS、CLR)。我决定采用 rusanu's blog 中提到的方法并尝试与服务经纪人一起去。

现在进行并行执行 - 我已将 MAX_QUEUE_READERS 设置为 5 并尝试执行几个长时间运行的程序。我注意到,他们仍然被连续执行。我假设他们处于不同的对话中,因此激活应该发生几次。 如果我假设错误,请纠正我。

感谢您的解释。

最佳答案

激活最多每 5 秒启动一个新线程,当且仅当在这 5 秒内有 RECIEVE 到达队列底部(返回空结果集)。因此,要实现 5 个线程,您需要等待 20 秒才能开始,并且在这 20 秒期间,您应该有足够的消息,确保没有线程达到空闲状态。

关于sql-server - Transact SQL 中存储过程的并行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551767/

相关文章:

c# - SqlDependency 简单选择查询总是返回 "Invalid"

sql-server - 删除 Service Broker 队列中的消息

SQL Server 查询连接多个表

mysql - sql 两个 order by 给出不同的结果

SQL Server 2008 - 在插入/更新触发器上将值复制到另一个表?

sql-server - 关键字 'IF' 附近的语法不正确

sql-server - 是否可以更改默认的 OLEDB 连接超时值?运行时错误 (80040e31)

sql-server - 使用 ALTER LOGIN 更改用户自己的密码

sql - sql中如何对表进行转置

sql-server - Service Broker - 如何将消息响应到不同的队列