Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server ServiceBroker最初需要时间_Sql Server_Performance_Scalability_Service Broker - Fatal编程技术网

Sql server ServiceBroker最初需要时间

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

我使用ServiceBroker来扩展存储过程。 它运行平稳,同时点击10100500次

但我面临一个小问题。详情如下

我们正在扩展的存储过程恰好执行了10秒

当我使用10个队列运行10次时,平均执行时间为10秒。表示所有文件都在同一时间执行

但当我排着100队跑了100次的时候。我看不到类似的结果。是的,我不希望所有的人同时跑。但至少第一次执行应该在10秒前完成,其他人应该在有资源时执行。 这里的发现是100次执行需要4分钟,第一次完成需要2分钟(字面意思)。剩下的再过2分钟就完成了

我的cpu核心是6个,我用6、12、48尝试过的激活(最大队列阅读器)都给出了相同的结果

还有一件事要提的是,如果我在等待10秒的情况下运行这个程序,而没有实际的sp执行,那么它的运行速度非常快,就像40秒内有1000个请求

我想从上述几点了解一下,服务代理最初是在等待完成第一次执行吗?这意味着为什么要花2分钟才能完成第一个任务


所有这些数字都通过使用临时日志表进行跟踪,我们在其中记录时间。

是从0到
Max\u Queue\u Readers的渐变。ServiceBroker不会立即激活6个队列读取器,它会先激活一个,然后在5秒内激活另一个,然后在5秒内激活另一个,依此类推。其想法是让ServiceBroker启动尽可能多的激活过程,以跟上工作负载,但不能更多。钉子被压平了


更多信息,请访问。

Service broker不是魔术。如果存储过程的各种调用之间存在争用,ServiceBroker不会消除这种争用。我的建议是,像解决任何其他存储过程性能问题一样解决这个问题:看看进程在等待什么,看看是否可以清除它。另外,为什么它们需要多长时间才重要呢?ServiceBroker是一种异步技术。意思是“开火然后忘记”。您的邮件最终将被处理。