Какова производительность пункта "Merge" в SQL-сервере 2008?

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

Действительно ли кто-либо знаком с производительностью для использования "Слияния" по сравнению с традиционной логикой, чтобы проверить существование и решить обновление или вставить затем?

Спасибо!

10
задан zs2020 30 March 2010 в 20:03
поделиться

3 ответа

MERGE обычно быстрее, потому что меньше операций DML, и это также рекомендованный подход из документации. При «традиционном» способе вы обрабатываете таблицы дважды - один раз для проверки существования и один раз для выполнения вашего DML. С MERGE все инкапсулируется с помощью одной операции - отсюда один набор блокировок, один набор журналов и т. Д.

Однако то, что на самом деле делают ваши запросы, довольно субъективно. Возможно, вам стоит взглянуть на Оптимизация производительности оператора MERGE в MSDN.

8
ответ дан 4 December 2019 в 01:56
поделиться

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

с нетерпением жду обсуждения

спасибо прав

0
ответ дан 4 December 2019 в 01:56
поделиться

У Technet есть некоторая информация в Оптимизация производительности оператора MERGE. Это в основном говорит о том, что производительность лучше, чем выполнение индивидуальных проверок, потому что требуется только один проход над данными. Однако индексы и т.д., конечно, по-прежнему важны.

1
ответ дан 4 December 2019 в 01:56
поделиться
Другие вопросы по тегам:

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