Я столкнулся с проблемой эффективности, когда хранимая процедура вызывается для обновления нескольких записей в одной таблице.Фактическая проблема содержит сотни параметров, но здесь есть упрощенная проблема.
CREATE PROCEDURE UpdateData
@ID1 int, @Value1 int,
@ID2 int, @Value2 int,
@ID3 int, @Value3 int
AS
BEGIN
-- Update record with ID1
-- Update record with ID2
-- Update record with ID3
END
Я вижу три способа сделать это:
- Создать запрос на обновление для каждого ID-значенияpair
- Создать цикл while, чтобы пройти через все входные данные и передать их через один запрос на обновление
- Вставить входные данные в локальную таблицу и выполнить обновление в одном запросе с использованием таблицысоздал
Я не уверен, в какой момент создание таблицы будет более или менее эффективным, чем другие варианты, поскольку я знаю, что базы данных хороши для параллельного выполнения задач, но создание временной таблицы также используетвремя.
Как я могу сравнить эти три метода, помимо их запуска и синхронизации?
Есть ли метод, который вы рекомендуете?