|
|
1
1
另一个选择是创建一个管道,以便第二个组的步骤3与第一个组的步骤4同时发生。如果你可以在第5步重叠更新,也可以这样做。这样,您就可以同时执行SQL访问和处理,但不会对数据库征税,因为您只有两个并发操作同时进行。 因此,您按顺序执行步骤1和2(我假设)以获得需要进一步处理的组的集合。那么。你的主线开始:
第二个线程为结果队列提供服务:
第三个线程为更新队列提供服务:
这个
这里的好处是,如果您想扩展它,可以添加多个计算线程;如果SQL Server可以处理更多并发事务,可以添加查询/更新线程。 我在每日合并/更新程序中使用了与此非常类似的东西,效果非常好。这个特定的进程不使用SQL server,而是使用标准的文件I/O,但是概念转换得非常好。 |
|
|
2
2
如果并行版本比串行版本快得多,我就不会担心SQL服务器上的压力……除非您执行的任务与在DB服务器上执行的其他一些重要或时间关键的操作相比,优先级当然较低。 我不太理解您对任务的描述,但听起来似乎更多的任务应该直接在数据库中执行(我认为有些细节不可能做到这一点?) |
|
John D · 需要为NULL或NOT NULL的WHERE子句 9 月前 |
|
Marc Guillot · 记录值时忽略冲突 10 月前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 10 月前 |
|
|
GH DevOps · 多对多关系中同类型的SQL Server关系表设计 10 月前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 10 月前 |