手続き型コードを並列化してテーブルにレコードを作成する方法を理解しようとしています。
これが状況です(申し訳ありませんが、実際のコードの方法で多くを提供することはできません):
以前のサービス日、現在のマイレージ、計画された1日のマイレージ、および各サービス間のマイレージの差に基づいて、車両サービスがいつ必要になるかを予測する必要があります。
全体として、これは非常に手続き的なものであり、車両ごとに、その履歴、現在の整備状態、毎日の走行距離(走行距離計画で定義された範囲に基づいて変更される可能性があります)、および整備の順序を考慮する必要があります。
現在、これらすべてをPHPで計算しており、100台の車両で約20秒かかります。これは将来数千に拡張される可能性があるため、20秒は長すぎます。
そこで、CLRストアドプロシージャで試してみることにしました。最初はマルチスレッド化を試してみようと思っていましたが、TSQLホストで実行するのは簡単ではないことがすぐにわかりました。TSQLが並列化自体を実行できるようにすることをお勧めしました。しかし、私にはその方法がわかりません。コードがレコードを作成する必要があるという事実がなければ、関数として定義して次のようにすることができます。
SELECT dbo.PredictServices([FleetID]) FROM Vehicles
そして、TSQLはそれを並列化できることを理解する必要がありますが、プロシージャの代替手段はありません。
これを並列化するために私にできることはありますか?