Я пытаюсь выяснить, как можно распараллелить некоторый процедурный код для создания записей в таблице.
Вот ситуация (извините, я не могу дать много информации о реальном коде):
Я должен предсказать, когда потребуется обслуживание транспортного средства, основываясь на предыдущей дате обслуживания, текущем пробеге, запланированном ежедневном пробеге и разнице в пробеге между каждой службой.
В целом - это очень процедурно, для каждого транспортного средства мне нужно учитывать его историю, текущее состояние обслуживания, суточный пробег (который может меняться в зависимости от диапазонов, определенных в плане пробега), и последовательность обслуживания .
В настоящее время я вычисляю все это в PHP, и для 100 автомобилей это занимает около 20 секунд. Поскольку в будущем это может быть увеличено до нескольких тысяч, 20 секунд - это слишком много.
Поэтому я решил попробовать сделать это в хранимой процедуре CLR. Сначала я думал, что попробую многопоточность, но быстро обнаружил, что это не так просто сделать на хосте TSQL. Мне было рекомендовано разрешить TSQL самостоятельно выполнять распараллеливание. Пока не знаю как. Если бы не факт, что код должен создавать записи, я мог бы определить его как функцию и сделать:
SELECT dbo.PredictServices([FleetID]) FROM Vehicles
И TSQL должен понять, что он может распараллелить это, но я не знаю альтернативы процедурам.
Что я могу сделать, чтобы распараллелить это?