Мердж против ЮСЕРТ - PullRequest
       8

Мердж против ЮСЕРТ

10 голосов
/ 22 марта 2010

У меня есть приложение, которое я пишу в доступе с серверной частью SQL. Одна из наиболее часто используемых частей - это когда пользователь выбирает ответ на вопрос, затем запускается хранимая процедура, которая проверяет, был ли уже дан ответ, выполнено ли UPDATE, если не выполнена INSERT.

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

У кого-нибудь есть идеи, если это быстрее, чем делать SELECT с последующим указанием INSERT или UPDATE?

1 Ответ

5 голосов
/ 22 марта 2010

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

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

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

...