![]() |
1
4
我想你确实设置了
一种更好的方法是使用一个队列,从该队列中加载和执行一组工作线程。典型的生产者消费者。worker(consumer)的数量将由SQL Server资源(CPU核心、内存、负载的IO模式)进行调整,但安全的数量是服务器核心数量的2倍。每个工人都使用一个专用连接来完成其工作。工人的角色和排队的角色不是为了加快工作速度,相反,他们扮演着 节流 防止服务器崩溃的机制。 一种更好的方法是将队列持久化到数据库中,作为从崩溃中恢复的一种方法。见 Using Tables as Queues 因为基于表的队列是出了名的容易出错的。 最后,您可以让SQL Server通过 Activation Asynchronous Procedure Execution 以及后续文章 Passing Parameters to a Background Procedure 哪一个是正确的解决方案取决于你对你的问题了解的许多因素,但我不知道,所以我不能建议你应该走哪条路。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 8 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 8 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 8 月前 |