我想弄清楚如何並行化一些過程代碼來在表中創建記錄。並行化TSQL CLR過程
這裏的情況(抱歉,我不能在實際代碼的方式提供太多):
我要預測何時將需要車輛服務,基於以前的服務日期,當前行駛里程,每項服務的計劃每日裏程和里程差異。總而言之 - 這是非常程序化的,對於每輛車,我需要考慮到它的歷史,當前的維修狀態,每日裏程(可根據里程計劃中定義的範圍改變),以及維修。
目前,我正在計算所有這一切在PHP中,100輛車大約需要20秒。由於這將來可能會擴大到幾千,20秒太長了。
所以我決定嘗試在CLR存儲過程中做到這一點。起初我以爲我會嘗試多線程,但是我很快發現在TSQL主機上做起來並不容易。我被建議允許TSQL自己完成並行化。但我不知道如何。如果這是不是事實的代碼需要創建記錄,我可以把它定義爲一個函數,做:
SELECT dbo.PredictServices([FleetID]) FROM Vehicles
和TSQL應該弄清楚它可以並行化,但我知道沒辦法的程序。
有什麼我可以做並行化呢?