Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top