SQL Server: оптимизация обновления нескольких записей из входов в хранимой процедуре - PullRequest
0 голосов
/ 21 июня 2019

Я столкнулся с проблемой эффективности, когда хранимая процедура вызывается для обновления нескольких записей в одной таблице.Фактическая проблема содержит сотни параметров, но здесь есть упрощенная проблема.

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

Я вижу три способа сделать это:

  1. Создать запрос на обновление для каждого ID-значенияpair
  2. Создать цикл while, чтобы пройти через все входные данные и передать их через один запрос на обновление
  3. Вставить входные данные в локальную таблицу и выполнить обновление в одном запросе с использованием таблицысоздал

Я не уверен, в какой момент создание таблицы будет более или менее эффективным, чем другие варианты, поскольку я знаю, что базы данных хороши для параллельного выполнения задач, но создание временной таблицы также используетвремя.

Как я могу сравнить эти три метода, помимо их запуска и синхронизации?

Есть ли метод, который вы рекомендуете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...