我试图弄清楚如何并行化一些程序代码以在表中创建记录。
情况如下(抱歉,我无法提供太多实际代码):
我必须根据之前的服务日期、当前里程、计划的每日里程以及每次服务之间的里程差异来预测何时需要车辆服务。
总而言之 - 这是非常程序化的,对于每辆车,我需要考虑它的历史、当前的维修状态、每日里程(可以根据里程计划中定义的范围而变化)和维修顺序。
目前我正在用 PHP 计算所有这些,100 辆车大约需要 20 秒。由于将来可能会扩展到数千个,因此 20 秒太长了。
所以我决定尝试在 CLR 存储过程中执行此操作。起初我以为我会尝试多线程,但是我很快发现在 TSQL 主机中做起来并不容易。有人建议我让 TSQL 自己解决并行化问题。但是我不知道怎么做。如果不是因为代码需要创建记录,我可以将它定义为一个函数并执行以下操作:
SELECT dbo.PredictServices([FleetID]) FROM Vehicles
并且 TSQL 应该弄清楚它可以并行化,但我知道过程没有替代方案。
我能做些什么来并行化这个吗?