СЛИЯНИЕ по сравнению с UPSERT

У меня есть приложение, которое я пишу в доступе с бэкендом SQL-сервера. Одна из наиболее в большой степени используемых частей - то, где пользователи выбирают ответ на вопрос, хранимая процедура затем запущена, который видит, был ли ответ уже дан, если это имеет ОБНОВЛЕНИЕ, выполняется, если не ВСТАВКА выполняется.

Это работает просто великолепно, но теперь мы обновили до экспресса SQL-сервера 2008, я задавался вопросом, будет ли это лучше/более быстро/больше эффективный для перезаписи этого SP для использования новой команды MERGE.

У кого-либо есть какая-либо идея, если это быстрее, чем выполнение ВЫБОРА, сопровождаемого или ВСТАВКОЙ или ОБНОВЛЕНИЕМ?

10
задан abatishchev 28 March 2012 в 13:25
поделиться

1 ответ

Не стоит усилий. Возможно выполнимо, но ничего примечательного это не даст.

MERGE особенно нацелен на хранилища данных, где поиск того, что вставить / обновить, является сложной задачей. Он позволяет выполнять все операции (вставка, обновление) с ОДНИМ набором слияний, по сравнению с одним набором для каждого условия. В вашем случае это не имеет значения.

У меня есть одна база данных, в которую я загружаю 3-5 миллионов строк в таблицу из 300 миллионов строк - там слияние улучшает мою производительность на 50% (одно сканирование таблицы вместо двух).

5
ответ дан 4 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: