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