Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
во-первых, с чего вы вязли, что загрузка длится час?

Потому что словосочентание " скажем при часовой загрузки" эквивалентно "например при часовой загрузки"
Вместо "1 час" вы можете подстваить другую цифру
могу, у меня она равна нескольким минутам.

msLex
во-вторых, если вы проиграли 1 час в 1-ой загрузке из 1000, но выиграли по 5 минут на остальных 999 - то чистого времени на обработку вы выиграли 999 * 5 - 60 = 4935 минут (3,5 суток).

Только эти 3.5 суток - они виртуальные. Я не могу их потратить слудующие неудачные загрузки. Дя ни на что я их не могу потратить.

а я могу, т.к. данные мержатся нонстоп, и у меня эти "условные 3.5 суток" не виртуальны а вполне реальны.
7 авг 14, 16:32    [16412843]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
пропущено...

Потому что словосочентание " скажем при часовой загрузки" эквивалентно "например при часовой загрузки"
Вместо "1 час" вы можете подстваить другую цифру

могу, у меня она равна нескольким минутам.

пропущено...

Только эти 3.5 суток - они виртуальные. Я не могу их потратить слудующие неудачные загрузки. Дя ни на что я их не могу потратить.[/quote]
а я могу, т.к. данные мержатся нонстоп, и у меня эти "условные 3.5 суток" не виртуальны а вполне реальны.
7 авг 14, 16:33    [16412851]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
черт, два неудачных квота

Glory
пропущено...

Потому что словосочентание " скажем при часовой загрузки" эквивалентно "например при часовой загрузки"
Вместо "1 час" вы можете подстваить другую цифру

могу, у меня она равна нескольким минутам.

пропущено...
Glory
Только эти 3.5 суток - они виртуальные. Я не могу их потратить слудующие неудачные загрузки. Дя ни на что я их не могу потратить.

а я могу, т.к. данные мержатся нонстоп, и у меня эти "условные 3.5 суток" не виртуальны а вполне реальны.
7 авг 14, 16:34    [16412858]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
а я могу, т.к. данные мержатся нонстоп, и у меня эти "условные 3.5 суток" не виртуальны а вполне реальны.

В смысле нон-стопом ? следующая загрузка начинается сразу же после предыдущей ?
7 авг 14, 16:34    [16412862]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
а я могу, т.к. данные мержатся нонстоп, и у меня эти "условные 3.5 суток" не виртуальны а вполне реальны.

В смысле нон-стопом ? следующая загрузка начинается сразу же после предыдущей ?

именно.
7 авг 14, 16:35    [16412865]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
могу, у меня она равна нескольким минутам.

Хорошо.
А у других нескольким часам. И что ?
7 авг 14, 16:35    [16412873]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Glory
sphinx_mv
А тут получили еще некотрое количество дополнительных операции.

А также возможность перезапускать упавший процесс с нужной точки, а не начинать его сначала.
Как вы думаете, больше времени потеряется при успешных Insert+Update+Delete vs MERGE или при упавших Insert+Update+Delete vs MERGE ?
Потери времени на "упавших" операциях - НЕ показатель! То есть - ВООБЩЕ! Сугубо потому, что ошибки случаются - но именно как ИСКЛЮЧЕНИЕ, а не как ПРАВИЛО. Заморачиваться на поведении системы исключительно в исключительных ситуациях - не продуктивное расходование ресурсов. Лучше беспокоиться, чтобы исключительные ситуации случались как можно реже - до никогда включительно.

Ну, а один успешный MERGE лучше, чем успешные Insert+Update+Delete для тех же источника и назначения. Умозрительно - минимум, на в 3 раза меньший объем потребляемых ресурсов (всех видов). IMHO.
7 авг 14, 16:36    [16412883]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
Glory
пропущено...

В смысле нон-стопом ? следующая загрузка начинается сразу же после предыдущей ?

именно.

Для таких вещей, по-моему лучше подходит CDC или репликация
7 авг 14, 16:37    [16412895]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
могу, у меня она равна нескольким минутам.

Хорошо.
А у других нескольким часам. И что ?

только то, что я и сказал.
выигрыш/проигрыш "зависит от", в том числе и от частоты падений.
у вас часто падает загрузка? у меня где 1 раз на 1 млн это норма.
7 авг 14, 16:38    [16412896]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sphinx_mv
Сугубо потому, что ошибки случаются - но именно как ИСКЛЮЧЕНИЕ, а не как ПРАВИЛО.

Ага особенно качество данных, напрмер, дубликаты - это исключительно редкое исключение.
7 авг 14, 16:39    [16412906]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
пропущено...

именно.

Для таких вещей, по-моему лучше подходит CDC или репликация


1. источником данных является не sql сервер
2. у меня мерж - это не перенос данных с одной базы в другую, а агрегация входящего потока
7 авг 14, 16:41    [16412921]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
у вас часто падает загрузка? у меня где 1 раз на 1 млн это норма.

При сложной системе загрузок, падение даже 1ой загрузки, которая является пререквизитом для сотни других, может вызвать остановку вообще всех загрузок.
Например, при незагруженном списке курсов валют делать зугрузки других финансовых данных - это наворотить такую гору ошибок, которую потом за всю жизнь на разобрать.
7 авг 14, 16:48    [16413003]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
sphinx_mv
Умозрительно - минимум, на в 3 раза меньший объем потребляемых ресурсов (всех видов). IMHO.

это не совсем так (а как показывали наши тесты, совсем не так)

если вам повезло, и вся база умещается в памяти (т.е. фактически нет чтение с диска, а только запись), то выигрыш в три раза будет только на поиск ключей в "target" таблице, на изменения выигрыша нет

если вам не так повезло, и далеко не вся база в памяти, то повторная проверка по ключу (update и delete после insert-а), скорее всего будет идти по кешу, что значительно быстрее.

по нашим тестам, выигрыш около 10-15%, но это на наших данных.
7 авг 14, 16:50    [16413025]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Glory
sphinx_mv
Сугубо потому, что ошибки случаются - но именно как ИСКЛЮЧЕНИЕ, а не как ПРАВИЛО.

Ага особенно качество данных, напрмер, дубликаты - это исключительно редкое исключение.
А по-подробнее про дубликаты уникальных ключей можно? Любой другой способ для определения связи между источником и назначением - путь в никуда.

Если ключ есть в источнике, но отсутсвует в назначении - вставка.
Если ключ отсутствует в источнике, но есть в назначении - удаление.
Если ключ есть и в источнике, и в назначении - обновление.
При ЛЮБОМ способе сливания данных - что для Insert+Update+Delete, что для Merge.
БЕЗ ВАРИАНТОВ!
7 авг 14, 16:50    [16413027]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sphinx_mv
БЕЗ ВАРИАНТОВ!

Если в источнике записи с повторяющимся ключом ?
Да-да, такое бывает
7 авг 14, 16:53    [16413052]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
Если в источнике записи с повторяющимся ключом ?

это точно не проблема, делайте с ними в merge тоже, что и в раздельном insert/update/delete
7 авг 14, 16:55    [16413070]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
Glory
Если в источнике записи с повторяющимся ключом ?

это точно не проблема, делайте с ними в merge тоже, что и в раздельном insert/update/delete

А вот это уже не админ решает и не разработчик. А бизнес.
7 авг 14, 16:56    [16413084]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
пропущено...

это точно не проблема, делайте с ними в merge тоже, что и в раздельном insert/update/delete

А вот это уже не админ решает и не разработчик. А бизнес.

в смысле? бизнесу решать каким код реализуются бизнес требования?
7 авг 14, 16:58    [16413100]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
Glory
пропущено...

А вот это уже не админ решает и не разработчик. А бизнес.

в смысле? бизнесу решать каким код реализуются бизнес требования?

Бизнес решает, что делать с дубликатами - игнорировать, падать, еще чего делать
7 авг 14, 16:59    [16413112]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
Glory
msLex
пропущено...

в смысле? бизнесу решать каким код реализуются бизнес требования?

Бизнес решает, что делать с дубликатами - игнорировать, падать, еще чего делать

пусть решает, я разве против, решения бизнеса вполне себе реализуются как через I/U/D так и через merge.
7 авг 14, 17:01    [16413124]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
msLex
sphinx_mv
Умозрительно - минимум, на в 3 раза меньший объем потребляемых ресурсов (всех видов). IMHO.

это не совсем так (а как показывали наши тесты, совсем не так)

msLex
если вам повезло, и вся база умещается в памяти (т.е. фактически нет чтение с диска, а только запись), то выигрыш в три раза будет только на поиск ключей в "target" таблице, на изменения выигрыша нет
Дело в том, что при раздельных Insert+Update+Delete "поиск ключей" на соответствие между источником и назначением приходится выполнять 3 раза.
Для ЛЮБОГО объема данных... И достаточно часто при этом физические дисковые операции не самый потребляемый ресурс...
msLex
если вам не так повезло, и далеко не вся база в памяти, то повторная проверка по ключу (update и delete после insert-а), скорее всего будет идти по кешу, что значительно быстрее.
Если объема кэша хватит для хранения ключей... К сожалению, у меня на сервере не настолько много памяти...
msLex
по нашим тестам, выигрыш около 10-15%, но это на наших данных.
7 авг 14, 17:05    [16413159]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
msLex
Glory
пропущено...

Бизнес решает, что делать с дубликатами - игнорировать, падать, еще чего делать

пусть решает, я разве против, решения бизнеса вполне себе реализуются как через I/U/D так и через merge.

Не тупите. Если бизнес скажет "дубликат генерирует ошибку, ", то никаких "делайте с ними в merge тоже, что и в раздельном insert/update/delete" не будет
Будет остановка загрузки с последующим разбором ситуации.
Stage таблица и разнесенные I/U/D позволят быстрее MERGE обнаружить неправильные данных, исправить их и продолжить загрузку именно с неудачной стадии. А не с начала.
7 авг 14, 17:06    [16413161]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
Glory
Member

Откуда:
Сообщений: 104751
sphinx_mv
Дело в том, что при раздельных Insert+Update+Delete "поиск ключей" на соответствие между источником и назначением приходится выполнять 3 раза.
Для ЛЮБОГО объема данных... И достаточно часто при этом физические дисковые операции не самый потребляемый ресурс...

Какой поиск ?
Ключи уникальности и так проверяются при каждом Insert+Update+Delete
7 авг 14, 17:07    [16413169]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
Glory
sphinx_mv
БЕЗ ВАРИАНТОВ!

Если в источнике записи с повторяющимся ключом ?
Да-да, такое бывает
Не верю! (с)
Если значение атрибута повторяется - это НИ РАЗУ НЕ ключ... И тоже БЕЗ ВАРИАНТОВ... :)
7 авг 14, 17:09    [16413186]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли преимущества Merge перед Insert+Update+Delete?  [new]
msLex
Member

Откуда:
Сообщений: 9273
sphinx_mv
И достаточно часто при этом физические дисковые операции не самый потребляемый ресурс...

sphinx_mv
К сожалению, у меня на сервере не настолько много памяти...

по-моему, это взаимоисключающие параграфы.
7 авг 14, 17:10    [16413189]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить