Sql server ServiceBroker最初需要时间
我使用ServiceBroker来扩展存储过程。 它运行平稳,同时点击10100500次 但我面临一个小问题。详情如下 我们正在扩展的存储过程恰好执行了10秒 当我使用10个队列运行10次时,平均执行时间为10秒。表示所有文件都在同一时间执行 但当我排着100队跑了100次的时候。我看不到类似的结果。是的,我不希望所有的人同时跑。但至少第一次执行应该在10秒前完成,其他人应该在有资源时执行。 这里的发现是100次执行需要4分钟,第一次完成需要2分钟(字面意思)。剩下的再过2分钟就完成了 我的cpu核心是6个,我用6、12、48尝试过的激活(最大队列阅读器)都给出了相同的结果 还有一件事要提的是,如果我在等待10秒的情况下运行这个程序,而没有实际的sp执行,那么它的运行速度非常快,就像40秒内有1000个请求 我想从上述几点了解一下,服务代理最初是在等待完成第一次执行吗?这意味着为什么要花2分钟才能完成第一个任务Sql server ServiceBroker最初需要时间,sql-server,performance,scalability,service-broker,Sql Server,Performance,Scalability,Service Broker,我使用ServiceBroker来扩展存储过程。 它运行平稳,同时点击10100500次 但我面临一个小问题。详情如下 我们正在扩展的存储过程恰好执行了10秒 当我使用10个队列运行10次时,平均执行时间为10秒。表示所有文件都在同一时间执行 但当我排着100队跑了100次的时候。我看不到类似的结果。是的,我不希望所有的人同时跑。但至少第一次执行应该在10秒前完成,其他人应该在有资源时执行。 这里的发现是100次执行需要4分钟,第一次完成需要2分钟(字面意思)。剩下的再过2分钟就完成了 我的cp
所有这些数字都通过使用临时日志表进行跟踪,我们在其中记录时间。是从0到
Max\u Queue\u Readers的渐变。ServiceBroker不会立即激活6个队列读取器,它会先激活一个,然后在5秒内激活另一个,然后在5秒内激活另一个,依此类推。其想法是让ServiceBroker启动尽可能多的激活过程,以跟上工作负载,但不能更多。钉子被压平了
更多信息,请访问。Service broker不是魔术。如果存储过程的各种调用之间存在争用,ServiceBroker不会消除这种争用。我的建议是,像解决任何其他存储过程性能问题一样解决这个问题:看看进程在等待什么,看看是否可以清除它。另外,为什么它们需要多长时间才重要呢?ServiceBroker是一种异步技术。意思是“开火然后忘记”。您的邮件最终将被处理。