Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Merge vs Upsert  [new]
abrashka
Member

Откуда:
Сообщений: 517
День добрый!
Объясните плз разницу между update+insert и merge, какое влияние на производительность?
Есть сервер 2008 r2, каждые 2 минуты нужно синхронизировать порядка 50 таблиц с порядка 100 строк в каждой, сейчас делается инсерт новым строкам и обновление существующих. Стоит ли использовать merge?
никаких особых условий нет.

Спасибо!
7 авг 13, 18:03    [14677462]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
При таких объемах можно хоть все полностью переливать. Если, конечно, речь не идет про стороки с 2 Гб блобами в каждой.
7 авг 13, 18:06    [14677479]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
abrashka
сейчас делается инсерт новым строкам и обновление существующих. Стоит ли использовать merge?


А MERGE, он каким то таинственным образом сделает что-то другое?!
7 авг 13, 18:15    [14677531]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
pkarklin
abrashka
сейчас делается инсерт новым строкам и обновление существующих. Стоит ли использовать merge?


А MERGE, он каким то таинственным образом сделает что-то другое?!
Логически - нет. А физически merge внезапно экономит 1 (или два если еще есть delete) seek на запись. На таблицах с "глубокими" индексами и при большом кол-ве записей выигрыш заметен невооруженным взглядом.
7 авг 13, 18:19    [14677553]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
abrashka
Member

Откуда:
Сообщений: 517
Спасибо!

Гавриленко Сергей Алексеевич,
Tаблицы относительно большие, речь идет о порядка 50 строк, которые нужно изменить/добавить, поэтому только upsert или merge.


pkarklin,
Для меня на самом деле образ таинственный, поэтому и спрашиваю. Не нашел информации о приемуществах merge над update/insert.
7 авг 13, 18:20    [14677555]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
abrashka
Member

Откуда:
Сообщений: 517
Гавриленко Сергей Алексеевич,

Большое спасибо!
Можно поподробней?
7 авг 13, 18:23    [14677574]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Гавриленко Сергей Алексеевич
Логически - нет. А физически merge внезапно экономит 1 (или два если еще есть delete) seek на запись. На таблицах с "глубокими" индексами и при большом кол-ве записей выигрыш заметен невооруженным взглядом.


Ну, вот когда ТС приведет планы, будем говорить про "физический". Но тут, не "наш случай" при его то кол-ве записей.
7 авг 13, 18:36    [14677644]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
abrashka
Для меня на самом деле образ таинственный, поэтому и спрашиваю. Не нашел информации о приемуществах merge над update/insert.


Планы исполнения, статистика TIME и IO, которую никто, кроме Вас, не получит на реальной системе.
7 авг 13, 18:42    [14677671]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
Crimean
Member

Откуда:
Сообщений: 13148
а еще merge может быть хорошо "понятнее", что, часто, важнее производительности
7 авг 13, 18:45    [14677696]     Ответить | Цитировать Сообщить модератору
 Re: Merge vs Upsert  [new]
abrashka
Member

Откуда:
Сообщений: 517
pkarklin,

Понятно, буду сравнивать планы.
Думал, что есть принципиальные отличия, независимо от конкретной ситуации.

Спасибо!
7 авг 13, 18:56    [14677755]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить