Какова производительность предложения «Слияние» в SQL Server 2008? - PullRequest
10 голосов
/ 31 марта 2010

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

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

Спасибо!

Ответы [ 3 ]

8 голосов
/ 31 марта 2010

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

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

1 голос
/ 31 марта 2010

Technet имеет некоторую информацию в Оптимизация производительности MERGE Statement . В основном это говорит о том, что производительность лучше, чем делать отдельные проверки, потому что требуется только один проход данных. Однако индексы и т. Д., Конечно, все еще важны.

0 голосов
/ 31 марта 2010

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

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

спасибо Правь

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