powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
179 сообщений из 179, показаны все 8 страниц
EF: Как вы делаете пакетные операции?
    #38885731
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажем, нужно сделать обновление поля у кучи записей в таблице.

Пытаясь что-то найти по теме, наткнулся на расширение EntityFramework.Extended
http://habrahabr.ru/post/203214/
https://github.com/loresoft/EntityFramework.Extended


Кто как вообще поступает в подобных случаях?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885799
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСкажем, нужно сделать обновление поля у кучи записей в таблице.

Пытаясь что-то найти по теме, наткнулся на расширение EntityFramework.Extended
http://habrahabr.ru/post/203214/
https://github.com/loresoft/EntityFramework.Extended


Кто как вообще поступает в подобных случаях?

В штатной ситуации пакетные обновления не требуются. А если вдруг потребовались, то это огромный косяк в бизнес-логике и в архитектуре данных. Если подобное когда-либо случается, засучиваем рукава и рефакторим.

Это расширение работает в обход контекста, т.е. по сути тоже самое, что втыкать SQL. Другого не дано.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885801
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Если данных обновлять надо не очень много, то можно отключить отслеживание изменений контекста. А если очень-очень много, то SQL + UPDATE, но повторюсь, это может просто сломать всё.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885829
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttShocker.ProСкажем, нужно сделать обновление поля у кучи записей в таблице.

Пытаясь что-то найти по теме, наткнулся на расширение EntityFramework.Extended
http://habrahabr.ru/post/203214/
https://github.com/loresoft/EntityFramework.Extended


Кто как вообще поступает в подобных случаях?

В штатной ситуации пакетные обновления не требуются. А если вдруг потребовались, то это огромный косяк в бизнес-логике и в архитектуре данных. Если подобное когда-либо случается, засучиваем рукава и рефакторим.

Это расширение работает в обход контекста, т.е. по сути тоже самое, что втыкать SQL. Другого не дано.
ну теперь представь, что с сайтами закончил и написал прогу которая ведет например проекты из 100000 работ
и вот кто то сдвинул некоторые работы в начале проекта
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885832
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСкажем, нужно сделать обновление поля у кучи записей в таблице.

Пытаясь что-то найти по теме, наткнулся на расширение EntityFramework.Extended
http://habrahabr.ru/post/203214/
https://github.com/loresoft/EntityFramework.Extended


Кто как вообще поступает в подобных случаях?

Так EF же работает с хранимками. То что надо.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885889
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueТак EF же работает с хранимками. То что надо.ну, хранимка в данном случае, также как и это расширение, будет выполнена вне контекста, да еще и создаст привязку к конкретной СУБД.

Я готов принять версию Хвоста, как рабочую, но мне непонятно, как делать рефакторинг таких вещей:

1) В прайс-листе в одной категории лежит 200 позиций, администратор подумал, что это слишком много, создал еще одну категорию, выбрал галочками по умозрительным критериям 100 позиций и перенес их в другую категорию.

2) Типовая функция для [около]почтовых программ: "пометить все|выделенные письма как [не]прочитанные"

3) Чистка устаревших записей лога
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885899
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Я готов принять версию Хвоста, как рабочую, но мне непонятно, как делать рефакторинг таких вещей:

}{ вост просто не работал с большими объемами данных, вот ему и кажется, что без прямых инъекций можно обойтись.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885904
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСкажем, нужно сделать обновление поля у кучи записей в таблице.

Пытаясь что-то найти по теме, наткнулся на расширение EntityFramework.Extended
http://habrahabr.ru/post/203214/
https://github.com/loresoft/EntityFramework.Extended


Кто как вообще поступает в подобных случаях?Отдельной Command (CQRS).
Или через репозиторий, внутри которого одна из реализаций: ExcuteUpdate (NHibernate), ExcuteNonQuery (ADO.NET), Execute (Dapper), Update (MongoDB).
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885926
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВ штатной ситуации пакетные обновления не требуются. А если вдруг потребовались, то это огромный косяк в бизнес-логике и в архитектуре данных.
Ты укурен? И причем тут "бизнес логика"?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885966
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique}{ вост просто не работал с большими объемами данных, вот ему и кажется, что без прямых инъекций можно обойтись.

Давай-ка реши мне следующие задачи при изменении, «прямыми инъекциями»:

1. Валидация изменений для каждого объекта.
2. Проверка допустимости изменения для пользователя по каждому объекту.
3. Дополнительные задачи инфраструктуры, такие как установка времени изменения, логгирование, и особенно, если ПО предполагает возможность отката последнего изменения.
4. Дополнительные бизнес-процессы, связанные с изменениями.

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

Если требуется часто делать пакетные изменения, возможно данные плохо нормализованы.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885968
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro1) В прайс-листе в одной категории лежит 200 позиций, администратор подумал, что это слишком много, создал еще одну категорию, выбрал галочками по умозрительным критериям 100 позиций и перенес их в другую категорию.

2) Типовая функция для [около]почтовых программ: "пометить все|выделенные письма как [не]прочитанные"

3) Чистка устаревших записей лога

Кроме логов, которые совершенно точно надо чистить с помощью операции DELETE, остальные действия можно делать обычно, без «низкоуровневых» bulk операций.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885969
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, хм. Пользователь удаляет аккаунт и надо всё с ним связанное деактивировать.

Не частое явление конечно, но вполне себе бизнес-логика :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885970
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы укурен? И причем тут "бизнес логика"?

Шта?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885974
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, хм. Пользователь удаляет аккаунт и надо всё с ним связанное деактивировать.

Не частое явление конечно, но вполне себе бизнес-логика :)Ну, по идее, "активность" такого объекта должна определяться одним полем - "активность" юзера. Тогда для деактивирования нужно поменять только поле активности юзера. Тут я с Хвостом согласен
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885976
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, хм. Пользователь удаляет аккаунт и надо всё с ним связанное деактивировать.

Не частое явление конечно, но вполне себе бизнес-логика :)

Об этом и речь.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885978
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttостальные действия можно делать обычно, без «низкоуровневых» bulk операций.Хорошо, как бы концептуально подошел к решению следующей задачи (сюжет основан на реальных событиях):

Есть прайс-лист организации - полмиллиона позиций (ну это полный, вместе с тем, чего уже нет в наличии).
Есть прайс-листы поставщиков, совокупно несколько миллионов позиций.

Прайсы поставщиков нужно периодически обновлять и формировать на основе их прайсов свой прайс. Каждый прайс поставщика - несколько [десятков] тысяч позиций. Его нужно втянуть, сравнить с уже имеющимся в базе, составить карту изменений (что появилось, что пропало, что вообще новое, никогда не было), актуализировать. После чего обновить собственный прайс (сотня тысяч позиций в наличии) - пересчитать наличие и цены с учетом новых реалий.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885980
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProХорошо, как бы концептуально подошел к решению следующей задачи (сюжет основан на реальных событиях):

Есть прайс-лист организации - полмиллиона позиций (ну это полный, вместе с тем, чего уже нет в наличии).
Есть прайс-листы поставщиков, совокупно несколько миллионов позиций.

Прайсы поставщиков нужно периодически обновлять и формировать на основе их прайсов свой прайс. Каждый прайс поставщика - несколько [десятков] тысяч позиций. Его нужно втянуть, сравнить с уже имеющимся в базе, составить карту изменений (что появилось, что пропало, что вообще новое, никогда не было), актуализировать. После чего обновить собственный прайс (сотня тысяч позиций в наличии) - пересчитать наличие и цены с учетом новых реалий.

Такую задачу я бы решал естественно запросами к БД, а не через EF контекст, если (скорее всего) с записями в прайс-листах не связаны никакие бизнес-процессы, они не представляют собой объекты домена приложения, т.е. это просто табличные данные, значит с ними вполне уместно работать запросами.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885981
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТакую задачу я бы решал естественно запросами к БД, а не через EF контекст, если (скорее всего) с записями в прайс-листах не связаны никакие бизнес-процессы, они не представляют собой объекты домена приложения, т.е. это просто табличные данные, значит с ними вполне уместно работать запросами.как раз мой первоначальный вопрос был примерно об этой ситуации.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885985
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttShocker.ProХорошо, как бы концептуально подошел к решению следующей задачи (сюжет основан на реальных событиях):

Есть прайс-лист организации - полмиллиона позиций (ну это полный, вместе с тем, чего уже нет в наличии).
Есть прайс-листы поставщиков, совокупно несколько миллионов позиций.

Прайсы поставщиков нужно периодически обновлять и формировать на основе их прайсов свой прайс. Каждый прайс поставщика - несколько [десятков] тысяч позиций. Его нужно втянуть, сравнить с уже имеющимся в базе, составить карту изменений (что появилось, что пропало, что вообще новое, никогда не было), актуализировать. После чего обновить собственный прайс (сотня тысяч позиций в наличии) - пересчитать наличие и цены с учетом новых реалий.

Такую задачу я бы решал естественно запросами к БД, а не через EF контекст, если (скорее всего) с записями в прайс-листах не связаны никакие бизнес-процессы, они не представляют собой объекты домена приложения, т.е. это просто табличные данные, значит с ними вполне уместно работать запросами.+1

Зачем это делать через EF?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885986
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVosttТакую задачу я бы решал естественно запросами к БД, а не через EF контекст, если (скорее всего) с записями в прайс-листах не связаны никакие бизнес-процессы, они не представляют собой объекты домена приложения, т.е. это просто табличные данные, значит с ними вполне уместно работать запросами.как раз мой первоначальный вопрос был примерно об этой ситуации.

Ну технически, запросами. Уж как конкретно, прямыми SQL, или вызовом хранимки, или с помощью некоего экстеншена, это уже by design. Объёмы табличных данных большие, операция периодическая, значит это будет делать некий сервис.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885987
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбор ORM-стратегии (.NET)

В Абрикосе в импорте данных используется Dapper.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885988
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA Выбор ORM-стратегии (.NET)

В Абрикосе в импорте данных используется Dapper.

Даппер кажется и рожден для того, чтобы колбасить данные, импорт/экспорт/массовая обработка... :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885990
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

спасибо, хорошая статья
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38885991
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA Выбор ORM-стратегии (.NET)

В Абрикосе в импорте данных используется Dapper.

Даппер кажется и рожден для того, чтобы колбасить данные, импорт/экспорт/массовая обработка... :)Мой посыл в том, что если грамотно изолировать слой доступа к данным, то где надо внутри импользуешь EF, где надо Dapper, а где-то и голый ADO.NET.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38886079
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМой посыл в том, что если грамотно изолировать слой доступа к данным, то где надо внутри импользуешь EF, где надо Dapper, а где-то и голый ADO.NET.

Согласен, тоже хотел об этом сказать.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887317
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУТы укурен? И причем тут "бизнес логика"?

Шта?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int i = 0;
foreach (var u in users)
{
    ProcessEmployee(db, u, employees);

    i++;
    // пакетное обновление
    if (i % 100 == 0)
    {
        db.SaveChanges();
     }
}

db.SaveChanges();



Чем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887339
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.

Это всё в рамках транзакции? Если нет, то оч. плохо.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887466
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЭто всё в рамках транзакции?
Зачем? Откуда такие требования?

P.S. Если произошел сбой, следующая синхронизация добъёт отвалившийся кусок. Плюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить. Но там уже более серьезные инструменты вступают в бой типа SSIS, BizTalk и иже с ними.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887489
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttЭто всё в рамках транзакции?
Зачем? Откуда такие требования?

P.S. Если произошел сбой, следующая синхронизация добъёт отвалившийся кусок. Плюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить. Но там уже более серьезные инструменты вступают в бой типа SSIS, BizTalk и иже с ними.

Ни разу не сталкивался с ситуацией, когда транзакционность опасна и вредна. Первый раз вообще такое слышу.

И к твоему изначальному вопросу, ProcessEmployee(db, u, employees); — что это, если не бизнес-логика? Только не говори, что это просто строка кода, или «какой-та метад».
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887501
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНи разу не сталкивался с ситуацией, когда транзакционность опасна и вредна.при интенсивной многопользовательской работе в разы увеличивает вероятность дедлоков. На TSQL всегда старался избежать транзакции там, где сбой не является критичным
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887515
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVosttНи разу не сталкивался с ситуацией, когда транзакционность опасна и вредна.при интенсивной многопользовательской работе в разы увеличивает вероятность дедлоков. На TSQL всегда старался избежать транзакции там, где сбой не является критичным

Не вижу причин решать эту проблему средствами БД.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887555
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНи разу не сталкивался с ситуацией, когда транзакционность опасна и вредна. Первый раз вообще такое слышу.
Вот тебе тот же элементарный кейс, синхронизация информации (фион, табельный номер, подразделение) о сотрудниках из аксапты. 30К сотрудников, представь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал. Какой смысл отката всей транзакции? Да и зачем мне захватывать объекты в БД с определенным уровнем изоляции? Что за бред?

hVosttИ к твоему изначальному вопросу, ProcessEmployee(db, u, employees); — что это, если не бизнес-логика? Только не говори, что это просто строка кода, или «какой-та метад».
Ну какая-то минимальная бизнес-логика, не спорю. Но не в этом суть, суть описана выше. Процессинг данных на EF - реальная задача.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887570
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУпропущено...

Зачем? Откуда такие требования?

P.S. Если произошел сбой, следующая синхронизация добъёт отвалившийся кусок. Плюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить. Но там уже более серьезные инструменты вступают в бой типа SSIS, BizTalk и иже с ними.

Ни разу не сталкивался с ситуацией, когда транзакционность опасна и вредна. Первый раз вообще такое слышу.Я сталкивался. Стараюсь делать транзакции как можно меньше. От греха подальше, нуегонах...
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887594
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, hVostt опять вляпался в то, в чём не разбирается... :) Интересно, как на этот раз собирается выкручиваться.
Больше всего радуют такие мемберы, которые в теме ноль, но сцуко совет расчехлить - гавно вопрос
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887618
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВот тебе тот же элементарный кейс, синхронизация информации (фион, табельный номер, подразделение) о сотрудниках из аксапты. 30К сотрудников, представь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал. Какой смысл отката всей транзакции? Да и зачем мне захватывать объекты в БД с определенным уровнем изоляции? Что за бред?

Ты видать совсем плохой стал, на старость лет. Тебя надо отстранить от разработки ПО и отправить срочняком на пенсию, маразм сыграл с тобой плохую шутку, такую ахинею нести. А чо, нормально. Подумаешь, кому-то из 30К сотрудников не повезёт, и будет бедняга к админам бегать, чтоб его инфу актуализировали.

Писец. Тупее в жизни ничего не слышал.

МСУНу какая-то минимальная бизнес-логика, не спорю. Но не в этом суть, суть описана выше. Процессинг данных на EF - реальная задача.

Какая ещё суть? От гениальности твоего «изобретения» я аж прослезился. Может замутишь по этой теме докторскую?

МСУМда, hVostt опять вляпался в то, в чём не разбирается... :) Интересно, как на этот раз собирается выкручиваться.
Больше всего радуют такие мемберы, которые в теме ноль, но сцуко совет расчехлить - гавно вопрос

А ты медаль себе в переходе купи.. Нет, лучше орден, или даже два. На свою большую, распирающуюся от гордости грудь, как раз будет, заслужено
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887620
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЯ сталкивался. Стараюсь делать транзакции как можно меньше. От греха подальше, нуегонах...

Поделись плз кейсами, когда она вредна?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887636
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ сталкивался. Стараюсь делать транзакции как можно меньше. От греха подальше, нуегонах...

Поделись плз кейсами, когда она вредна?
счас будут гуглить :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887697
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТы видать совсем плохой стал, на старость лет. Тебя надо отстранить от разработки ПО и отправить срочняком на пенсию, маразм сыграл с тобой плохую шутку, такую ахинею нести. А чо, нормально. Подумаешь, кому-то из 30К сотрудников не повезёт, и будет бедняга к админам бегать, чтоб его инфу актуализировали.
А ты предлагаешь всем 30К сотрудникам к админу бегать, чтобы их актуализировали? Тебя уволят

hVosttМСУНу какая-то минимальная бизнес-логика, не спорю. Но не в этом суть, суть описана выше. Процессинг данных на EF - реальная задача .
Какая ещё суть? От гениальности твоего «изобретения» я аж прослезился. Может замутишь по этой теме докторскую?
Суть выделена болдом.

hVosttА ты медаль себе в переходе купи.. Нет, лучше орден, или даже два. На свою большую, распирающуюся от гордости грудь, как раз будет, заслужено
Зачем мне медаль и ордена. Лишний раз неофита попинать просто задорно :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887745
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА ты предлагаешь всем 30К сотрудникам к админу бегать, чтобы их актуализировали? Тебя уволят

Угу, тебя с такими подходами ещё в банковской системе не хватало. Ну подумаешь, часть бабла прошло, часть не прошло. Пох...

Дурик, у тебя унылый, пахабный и тупой пример. Придумай что-нибудь ещё.

И поясни вот этот говновысер, плз. Желательно хоть как-то аргументировать, а не жалкие пуки в воду:

МСУна реальных массивах данных транзакционность априори вредна и опасна

П.С. даже на собеседовании джуниора тебе за такое ушлёпство рассмеются в лицо и отправят мести улицы. умник хренов.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887748
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛишний раз неофита попинать просто задорно :)

С такой пиналкой тебе только голубей дрессировать.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887799
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУА ты предлагаешь всем 30К сотрудникам к админу бегать, чтобы их актуализировали? Тебя уволят

Угу, тебя с такими подходами ещё в банковской системе не хватало. Ну подумаешь, часть бабла прошло, часть не прошло. Пох...

В кучу смешалось всё, люди, кони, остатки мозгов хвоста...

hVosttДурик, у тебя унылый, пахабный и тупой пример. Придумай что-нибудь ещё.
Почему унылый? Возьми любую ерп систему, любой классификатор - и хоть обинтегрируйся. Мало?

hVosttИ поясни вот этот говновысер, плз. Желательно хоть как-то аргументировать, а не жалкие пуки в воду:

МСУна реальных массивах данных транзакционность априори вредна и опасна

П.С. даже на собеседовании джуниора тебе за такое ушлёпство рассмеются в лицо и отправят мести улицы. умник хренов.
Ты просто еще не дорос до этого высера. Клепай лучше формочки и тестируй код :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887837
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы просто еще не дорос до этого высера. Клепай лучше формочки и тестируй код :)

Ты напоминаешь героя одной из книжек Носова:

-- Моей музыки не понимают, -- говорил он. -- Еще не доросли до моей музыки. Вот когда дорастут -- сами попросят, да поздно будет. Не стану больше играть.

Вместо пояснений, унылые пуки в лужу. Я в прочем этого от тебя и ожидал. Мой вопрос на счёт пояснения твоих громких заявлений можно считать риторическим, так как ты просто тупо слил.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887969
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВместо пояснений, унылые пуки в лужу.
А зачем что-то "пояснять" идиоту, причем 10 раз подряд?

Ведь, согласись, сколько не говори дураку, что он дурак, всё-равно без толку. Еще и обругает. Хорошая басня про тебя с национального литературного портала :)

Басня про дуракаНе помню где, но было так,
Что жил среди людей
Непримечательный дурак
Не гад, и не злодей.

Носил пиджак он или фрак
И выглядел, как все,
И лишь внутри он был дурак
Во всей своей красе.

Он был хорош, пока молчал,
Ну, а болтал когда,
Никто его не замечал -
Подумаешь беда!

Но как-то раз один простак
(Он был издалека),
Сказал негромко: «Вот, дурак!»,
Послушав дурака.

Герой наш белый стал как мел
И, стукнув кулаком,
Вдруг завопил: «Меня посмел
Назвать он дураком!

Эй, люди! Как же это так,
Я спрашиваю вас?
Он говорит, что я дурак!
Он так сказал сейчас!»

Пока бедняга не охрип,
Хватало сил пока
Кричал, что этот гадкий тип
Нашел в нем дурака!

Никто их слушать не хотел
Всем было не до них.
У всех и так хватает дел,
Проблем полно своих.

Спасибо крикам дурака!
Он всех достал! И всяк
Теперь уж знал наверняка,
Что перед ним дурак.

Мораль сама придет на ум:
Коль не совсем дурак,
Не поднимай напрасно шум -
Молчи себе в кулак!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38887999
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЯ сталкивался. Стараюсь делать транзакции как можно меньше. От греха подальше, нуегонах...

Поделись плз кейсами, когда она вредна?Про лишние блокировки, в том числе повышающие вероятность мёртвой блокировки, выше уже написали.

Наблюдал случай, один админ самовольно решил почистить таблицу с логами. Откуда ему было знать, что MSSQL выполняет команду delete from Log where EntryDate < @d в одной транзакции. Он сначала пару часов ждал, пока оно удалится. Потом ему надоело ждать, он отменил запрос. Потом все столько же ждали, пока отменится транзакция. На всё ушло часов ~6.

Из-за невозможности отключения транзакций например чистка БД от старых записей превращается в мучение, хотя казалось бы...
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888016
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, зачем ты разжевываешь очевидное неофиту, он учиться не хочет, живёт в своём космосе измерении на цепи и гавкает, когда надоедает писать юнит тесты. Пусть тухнет, забей :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888039
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОткуда ему было знатьну как бэ админ должен было это знать

Пока шишку не набьешь... Я тоже запускал, правда update. Хорошо, что ночью. В два часа запустил, на четыре поставил будильник на всякий случай, что было правильным решением, в четыре отменил транзакцию, до шести она откатывалась, успел до начала рабочего дня )
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888072
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во всех букварях черным по-белому писано, что транзакции должны быть как можно короче, в этом их эффективность. Но Хвост продолжает жечь напалмом

https://technet.microsoft.com/ru-ru/library/ms187484(v=sql.105).aspx В целях сокращения конкуренции за ресурсы при одновременной работе пользователей, особенно в многопользовательских системах, транзакции должны быть как можно более короткими.

https://technet.microsoft.com/ru-ru/library/ms187484(v=sql.105).aspx Длительные неэффективные транзакции могут без проблем работать при небольшом количестве пользователей, но могут создавать совершенно недопустимую нагрузку в системах, где одновременно работают тысячи пользователей.

Рекомендации по кодированиюТранзакция должна быть как можно более короткой.

P.S. Хвост, купи себе уже голову
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888132
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей, зачем ты разжевываешь очевидное неофиту, он учиться не хочет, живёт в своём космосе измерении на цепи и гавкает, когда надоедает писать юнит тесты. Пусть тухнет, забей :)

Пока что вижу, что это ты из космоса так и не вылазишь никогда. Я спросил у человека — он ответил.

Спросил же у тебя, ты максимум изображаешь из себя шута, хотя может и не изображаешь вовсе... Просто шут.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888140
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, что ты там бурлишь себе под нос, транзактщионщик? Иди паси коз, и не забудь их оттестировать
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888151
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУP.S. Хвост, купи себе уже голову

Мне — зачем? Я же не туплю как ты. Расскажи-ка, как ты обходишься без транзакций людям.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888153
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVostt, что ты там бурлишь себе под нос, транзактщионщик? Иди паси коз, и не забудь их оттестировать

МСУ ты в своём репертуаре: пук-пук-пук в лужу. И сел в лужу. Ведь ты единственный в мире знаешь, как работать с БД без транзакций
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888169
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУP.S. Хвост, купи себе уже голову
Мне — зачем?
Ну как бы без головы трудно нынче. Хотя ты прав, и так сойдёт

hVosttРасскажи-ка, как ты обходишься без транзакций людям.
А я разве без них обхожусь?

hVosttМСУ ты в своём репертуаре: пук-пук-пук в лужу. И сел в лужу. Ведь ты единственный в мире знаешь, как работать с БД без транзакций
В данном случае лужа - это твоё лицо. Да, так и есть. Пук в лужу? Ну хорошо, пускай будет так
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888170
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПро лишние блокировки, в том числе повышающие вероятность мёртвой блокировки, выше уже написали.

Наблюдал случай, один админ самовольно решил почистить таблицу с логами. Откуда ему было знать, что MSSQL выполняет команду delete from Log where EntryDate < @d в одной транзакции. Он сначала пару часов ждал, пока оно удалится. Потом ему надоело ждать, он отменил запрос. Потом все столько же ждали, пока отменится транзакция. На всё ушло часов ~6.

Из-за невозможности отключения транзакций например чистка БД от старых записей превращается в мучение, хотя казалось бы...

А как выкрутились из ситуации? Забили на чистку логов?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888173
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА я разве без них обхожусь?

Ты только недавно говорил «АПРИОРИ ОПАСНА И ВРЕДНА», скажи, ты не осёл случайно? Упёртое тупое животное. Сам сказал «опасна и вредна» и тут же даёшь заднюю.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888176
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttА как выкрутились из ситуации? Забили на чистку логов?очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888185
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

И ещё скажи мне, как вот это твоё высказывание:

МСУпредставь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал

Согласуется с твоими ссылками про проблемы в многопользовательской среде, ведь как бы «ночной джоб» работает обычно с БД в одно рыло, монопольно?

Я всё жду не дождусь от тебя реальный проблемный кейс.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888197
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVosttА как выкрутились из ситуации? Забили на чистку логов?очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить.

Про чистки логов понятно, их надо делать серией TOP-ов, тем более логи вообще не несут никакой полезной нагрузки, оказывающей влияние на целостность бизнес-данных.

Интересны примеры с бизнес-данными. Когда же это действительно вредно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888261
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУА я разве без них обхожусь?

Ты только недавно говорил «АПРИОРИ ОПАСНА И ВРЕДНА», скажи, ты не осёл случайно? Упёртое тупое животное. Сам сказал «опасна и вредна» и тут же даёшь заднюю.
Ты реально дурак? Выдрал фразу из контекста и прикинулся идиотом?

МСУПлюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить.

Разницу видишь между "транзакционность вредна" и "транзакционность вредна больших выборках"? Убей уже себя, глупый
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888269
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ,

И ещё скажи мне, как вот это твоё высказывание:

МСУпредставь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал

Согласуется с твоими ссылками про проблемы в многопользовательской среде, ведь как бы «ночной джоб» работает обычно с БД в одно рыло, монопольно?
Ну ты чайник, я плачу...
БД - это многопользователськая среда. Однорылый джоб - это такой же клиент из 100500 других клиентов этой БД. Если тупой джоб заюзает повышенный уровень изоляции транзакции, он может заблокировать ресурсы (дедлоки), из-за чего другие пользователи (и сервисы), работающие с залоченными таблицами будут отсасывать. Учи матчасть уже, клоун.

hVosttЯ всё жду не дождусь от тебя реальный проблемный кейс.
Ты дурак? :) Нет, честно ответь, ты идиот?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888292
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы реально дурак? Выдрал фразу из контекста и прикинулся идиотом?

МСУПлюс, на реальных массивах данных транзакционность априори вредна и опасна. Это ж тебе не пару тыщ строк обновить.

Разницу видишь между "транзакционность вредна" и "транзакционность вредна больших выборках"? Убей уже себя, глупый

Реальные массивы данные === большие выборки? Ты случаем, не таджик?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888293
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу ты чайник, я плачу...
БД - это многопользователськая среда. Однорылый джоб - это такой же клиент из 100500 других клиентов этой БД. Если тупой джоб заюзает повышенный уровень изоляции транзакции, он может заблокировать ресурсы (дедлоки), из-за чего другие пользователи (и сервисы), работающие с залоченными таблицами будут отсасывать. Учи матчасть уже, клоун.

Ты же говорил про ночной джоб. Ладно, ты по ходу упорот, забываешь то, что сам сказал 5 минут назад. Тебе в психиатрию надо.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888297
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttЯ всё жду не дождусь от тебя реальный проблемный кейс.
Ты дурак? :) Нет, честно ответь, ты идиот?

Я не виноват, что ты не в состоянии до сих пор привести проблемный кейс. Алексей и то с ходу привёл, хотя не совсем то, что я просил, ведь изначально обсуждалась бизнес-логика и бизнес-данные, а не чистка логов. Но тоже сойдёт.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888352
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КПро лишние блокировки, в том числе повышающие вероятность мёртвой блокировки, выше уже написали.

Наблюдал случай, один админ самовольно решил почистить таблицу с логами. Откуда ему было знать, что MSSQL выполняет команду delete from Log where EntryDate < @d в одной транзакции. Он сначала пару часов ждал, пока оно удалится. Потом ему надоело ждать, он отменил запрос. Потом все столько же ждали, пока отменится транзакция. На всё ушло часов ~6.

Из-за невозможности отключения транзакций например чистка БД от старых записей превращается в мучение, хотя казалось бы...

А как выкрутились из ситуации? Забили на чистку логов?Так и делаем:hVosttПро чистки логов понятно, их надо делать серией TOP-ов

hVostt, тем более логи вообще не несут никакой полезной нагрузки, оказывающей влияние на целостность бизнес-данных. Интересны примеры с бизнес-данными. Когда же это действительно вредно.Не нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888363
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)необходимость транзакций порождается далеко не всегда избыточностью.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888421
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)

Т.е. всё зависит от требований, задач и ситуации. «Транзакции = плохо» такое же нелепое утверждение, как и «Транзакция = хорошо».

Какие-то абстрактные «реальные массивы данных» о которых с упорством глупого прыщавого юнца вещает МСУ, для которых злые транзакции «априори опасна и вредна», это ровным счётом ни о чём.

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

Есть реальный пример, где такая ситуация недопустима в принципе — банковская система. Но почему только там ошибки не допускаются, а где-то ещё могут допускаться, особенно в рамках крупной организации. Что это за глупость такая, типа часть сотрудников «не загрузилась»? Это что вообще? Это не нормально. Либо всё, либо ничего, если сама задача не подразумевает иное (когда на первом месте стоит задача хоть что-то обработать, не обращая внимания на ошибки).

В общем, глобальные утверждения что дескать что-то там есть беспощадное зло, без контекста реальных задач , простительны лишь прыщавым студентам, у которых просто ещё нет опыта. Взрослым опытным серьёзным людям нести такую ахинею непростительно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888423
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProАлексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)необходимость транзакций порождается далеко не всегда избыточностью.Но избыточность всегда порождает необходимость транзакций. :-)

Второй случай: сущность хранится в нескольких таблицах. Больше случаев не припомню.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888436
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВторой случай: сущность хранится в нескольких таблицах. Больше случаев не припомню.

Так это не избыточность, это нормализация. Обычно так и получается. Если сущность хранится полностью в одной таблице, это скорее всего справочник.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888450
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНе нужно баловаться с избыточностями, тогда бороться за целостность транзакциями не придётся. :-)

Т.е. всё зависит от требований, задач и ситуации. «Транзакции = плохо» такое же нелепое утверждение, как и «Транзакция = хорошо».Этого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-)

hVosttВ транзакциях важна согласованность. Если при обработке даже сотни тысяч записей некий пакет, состоящий из сотни или тысячи записей упал с ошибкойНе абстрактный "пакет", а "сущность, состоящая из тысячи записей". Действительно, это третья необходимость транзакций. Итого:

1. Избыточность.
2. Сущность хранится в нескольких таблицах.
3. Сущность хранится в нескольких записях.

hVosttЕсть реальный пример, где такая ситуация недопустима в принципе — банковская система. Но почему только там ошибки не допускаются, а где-то ещё могут допускаться, особенно в рамках крупной организации. Что это за глупость такая, типа часть сотрудников «не загрузилась»? Это что вообще? Это не нормально. Либо всё, либо ничего, если сама задача не подразумевает иное (когда на первом месте стоит задача хоть что-то обработать, не обращая внимания на ошибки).Банковская система - типичный пример избыточности на почве распределённости хранения данных. Конечно там нужны транзакции, распределённые.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888453
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КВторой случай: сущность хранится в нескольких таблицах. Больше случаев не припомню.

Так это не избыточность, это нормализация. Обычно так и получается. Если сущность хранится полностью в одной таблице, это скорее всего справочник.А я и не называю это избыточностью. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888473
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-)

А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888505
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-)

А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность.Однако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888507
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полный пипец
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888509
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КЭтого никто не говорил. Говорили, что транзакции нужно делать как можно короче. МСУ даже МСДН цитировал. :-)

А я в свою очередь не утверждал обратного, и с этим не спорил. Нет смысла лепить транзакции там, где они не нужны, или искать другие пути решения, если на первом место стоит производительность.
не сдавайся
производительность не отменяет транзакционность
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888512
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это надо ж - можно значит без транзакций убить элемент справочника с сотней другой ссылок
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888513
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРеальные массивы данные === большие выборки? Ты случаем, не таджик?
Реальные массивы данных - это большие хранилища, террабайты, десятки террабайт. Это тебе не 10Gb база твоего ларька по продаже сигарет.

hVosttТы же говорил про ночной джоб. Ладно, ты по ходу упорот, забываешь то, что сам сказал 5 минут назад. Тебе в психиатрию надо.
Какая разница, ночной он или дневной? Ты не допускаешь, что пользователи могут работать в разных часовых поясах?

hVosttЯ не виноват, что ты не в состоянии до сих пор привести проблемный кейс. Алексей и то с ходу привёл, хотя не совсем то, что я просил, ведь изначально обсуждалась бизнес-логика и бизнес-данные, а не чистка логов. Но тоже сойдёт.
Тебе уже 3 человека рассказали про проблемные кейсы. Я же не виноват, что ты идиот и понималка сломана. Объяснить очевидное разжевать, макнуть тебя с головой - а тебе всё мало. Крепкий орешек
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888514
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

да пох скоко там террабайт, дело не в объеме а в АСИД
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888518
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttпропущено...
А я в свою очередь не утверждал обратного, и с этим не спорил.Однако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-)
Ппц, клиника

ViPRosполный пипец
+1
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888623
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРеальные массивы данных - это большие хранилища, террабайты, десятки террабайт. Это тебе не 10Gb база твоего ларька по продаже сигарет.

Шта? Ну давай, расскажи нам, что у тебя там ещё по твоей «фене» как называется

МСУКакая разница, ночной он или дневной? Ты не допускаешь, что пользователи могут работать в разных часовых поясах?

Так крутишься на сковородке, аж брызги во все стороны летят
Зачем надо было говорить про « ночной джоб»? Чтоб добавить романтики?
Хватит уже смешить народ

МСУТебе уже 3 человека рассказали про проблемные кейсы. Я же не виноват, что ты идиот и понималка сломана. Объяснить очевидное разжевать, макнуть тебя с головой - а тебе всё мало. Крепкий орешек

2 сказали, ты лишь подкинул каких-то ссылок, которые наспех нагуглил, а кейсов так и не увидел.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888629
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОднако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-)

Почему не хорошо? Может ты пояснишь, раз МСУ тупо не в состоянии говорить разумно?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888650
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУРеальные массивы данных - это большие хранилища, террабайты, десятки террабайт. Это тебе не 10Gb база твоего ларька по продаже сигарет.
Шта? Ну давай, расскажи нам, что у тебя там ещё по твоей «фене» как называется
Что непонятно в слове "реальные"? Реальные - это не детские, типа твоих, из 1 тыс строк на всю базу. Какая феня, ты о чем?

hVosttМСУКакая разница, ночной он или дневной? Ты не допускаешь, что пользователи могут работать в разных часовых поясах?
Так крутишься на сковородке, аж брызги во все стороны летят
Зачем надо было говорить про « ночной джоб»? Чтоб добавить романтики?
Хватит уже смешить народ
Типичная выходка неудачника, который обосрался по самые уши. И чтобы как-то поскорее вылезти из вонючей кучу он развешивает ярлыки, что все вокруг выкручиваются и позорятся. Ты стихи читал выше? Какие выводы сделал? :)
А по поводу ночного джоба не понял, чем он тебя испугал? Я тебе привел кейс, привел свои доводы, привел рекомендации от MS. Этим я доказал, что твой высер нелегитимен. Какие еще вопросы?

hVosttМСУТебе уже 3 человека рассказали про проблемные кейсы. Я же не виноват, что ты идиот и понималка сломана. Объяснить очевидное разжевать, макнуть тебя с головой - а тебе всё мало. Крепкий орешек
2 сказали, ты лишь подкинул каких-то ссылок, которые наспех нагуглил, а кейсов так и не увидел.
Ну побейся еще головой об стену, вдруг кейсы сами сгенерятся

hVosttАлексей КОднако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-)
Почему не хорошо? Может ты пояснишь, раз МСУ тупо не в состоянии говорить разумно?
Что именно тебе кажется неразумным в моих доводах? Ты плаваешь в данной теме, причем очень сильно, причем как студент двоешник. Когда студент двоешник наезжает на учителей, орёт, разбрасывая сопли, это выглядит крайне смешно. Радуй нас ещё, хвост, пиши
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888672
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧто непонятно в слове "реальные"? Реальные - это не детские, типа твоих, из 1 тыс строк на всю базу. Какая феня, ты о чем?

Извини, но свою лапшу «реальную» своим лопоухим боссам в уши пихай, раз они на свою голову держат у себя такого онолитега. Цифры давай, факты, аргументы, а не свою непонятную «феню».

МСУЯ тебе привел кейс, привел свои доводы, привел рекомендации от MS. Этим я доказал, что твой высер нелегитимен.

Напомни мне плз, с какого года РЕКОМЕНДАЦИИ являются доказательствами? Ты мне унылого протоукра из себя не строй. Либо давай доказательства с нормальными аргументами, либо очевидно, что ты в очередной раз слился, твоё разбрасывания какашками делу не поможет.

МСУНу побейся еще головой об стену, вдруг кейсы сами сгенерятся

Зачем? Я спросил, умные люди ответили. Но ты видать упорно не хочешь быть в кругу разумных людей, обезьянкой быть интереснее, да?

МСУЧто именно тебе кажется неразумным в моих доводах? Ты плаваешь в данной теме, причем очень сильно, причем как студент двоешник. Когда студент двоешник наезжает на учителей, орёт, разбрасывая сопли, это выглядит крайне смешно. Радуй нас ещё, хвост, пиши

Плаваешь, не плаваешь, я не могу всего знать, это факт. Поэтому и уточняю, задаю вопросы. Твои дурно пахнущие какульки, не приносят пользы никому, при чём ты от этого умнее не выглядишь.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888682
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosда пох скоко там террабайт, дело не в объеме а в АСИД

ACID для МСУ аще не аргумент, вертел он его на одном месте
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888697
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttИзвини, но свою лапшу «реальную» своим лопоухим боссам в уши пихай, раз они на свою голову держат у себя такого онолитега. Цифры давай, факты, аргументы, а не свою непонятную «феню».
Маленький, еще раз вопрос, ты понимаешь разницу между "реальными" данными и какими-нибудь "тестовыми" данными? Ты ж тестер, должно же быть понимание. Или тут тоже прокол? Какие аналитики, какие фени, какие боссы? Ты упорот?

hVosttМСУЯ тебе привел кейс, привел свои доводы, привел рекомендации от MS. Этим я доказал, что твой высер нелегитимен.
Напомни мне плз, с какого года РЕКОМЕНДАЦИИ являются доказательствами?
Занавес. Позорнейший слив засчитан. Без комментариев

hVosttМСУНу побейся еще головой об стену, вдруг кейсы сами сгенерятся
Зачем? Я спросил, умные люди ответили. Но ты видать упорно не хочешь быть в кругу разумных людей, обезьянкой быть интереснее, да?
Ты не спросил, спрашивают не так. Ты ляпнул глупость, тебя в очередной раз отпинали, вылили ушат помоев на голову и разъяснили концепцию. Давай называть вещи своими именами

hVosttПлаваешь, не плаваешь, я не могу всего знать, это факт.
Ну если не можешь знать факт, то зачем лезешь с тупыми советами? 17297928

hVosttПоэтому и уточняю, задаю вопросы. Твои дурно пахнущие какульки, не приносят пользы никому, при чём ты от этого умнее не выглядишь.
Я тебя не виню в том, что ты не знаешь, как решаются такие задачи. Меня забавит факт, что ты реальное дно, но при этом упёрто лезешь что-то советовать людям на форуме. Лучше промолчи и послушай, что знающие мемберы ответят и прими более менее близкую точку зрения. Так хоть не стыдно будет потом отмываться.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888786
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КОднако тут ты предлагал сеанс репликации данных выполнять в одной транзакции, что не есть хорошо. :-)

Почему не хорошо?Ну все будут ждать, пока не закончится синхронизация данных. Что в этом хорошего?

А главное, ради чего? Ну пусть при сбое синхронизируются данные по половине персонала, ну и что? При следующем сеансе синхронизируется остальное. Тут максимум, в транзакции обновлять информацию об одном сотруднике.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888790
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы не спросил, спрашивают не так.

А как надо?

МСУНу если не можешь знать факт, то зачем лезешь с тупыми советами? 17297928

1. Ты ВСЁ знаешь?
2. Обоснуй пожалуйста свою точку зрения, почему мой совет тупой.


МСУЛучше промолчи и послушай, что знающие мемберы ответят и прими более менее близкую точку зрения.

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

П.С. У тебя ЧСВ не просто зашкаливает, а трещит по швам. По делу, как обычно, 0, а понтов, как у мелкого хулигана со двора, считающего себя пупом земли.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888805
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу все будут ждать, пока не закончится синхронизация данных. Что в этом хорошего?

А главное, ради чего? Ну пусть при сбое синхронизируются данные по половине персонала, ну и что? При следующем сеансе синхронизируется остальное. Тут максимум, в транзакции обновлять информацию об одном сотруднике.

Что за бред? Возьмём, например сайт Хабрахабр. Иногда он проводит профилактические работы, пересчитывает карму там, рейтинги, ещё что-то... На это время сайт недоступен, такое периодически бывает. Надо быть полоумным идиотом, чтобы выполнять синхронизацию во время активной работы пользователей. Это чистой воды ИДИОТИЗМ, и пусть хоть кто-то мне скажет, что это не так. Я такого в жизни не видел, чтобы кто-то додумался до этого. Или я не прав?

И зачем вообще систему подвергать в неоткатное несогласованное состояние? Это нонсенс. Или просто понадеемся на то, что есть свежий бекап?

Принципы ACID ещё никто не отменял.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888828
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУТы не спросил, спрашивают не так.
А как надо?
Уважительно, без пафоса и без слюнометания. Общаться с глупой гавкающей собакой не интересно, её сразу начинают бить ногами.

hVosttМСУНу если не можешь знать факт, то зачем лезешь с тупыми советами? 17297928
1. Ты ВСЁ знаешь?
2. Обоснуй пожалуйста свою точку зрения, почему мой совет тупой.
1. Нет.
2. Я уже обосновал, и не только я. Зачем включаешь дурака?

hVosttМСУЛучше промолчи и послушай, что знающие мемберы ответят и прими более менее близкую точку зрения.
Ты себя тоже к «знающим мемберам» относишь?
В данной теме - да. У тебя какие-то сомнения? Так выкладывай. Пока я вижу брызги слюны неотесаного неофита.

hVosttПокажи, где ета доска почёта, где красуется твоё умное лицо?
Мне пиар не нужен. Я пишу текст на основе своего опыта и рекомендаций вендоров. Ты пишешь на основе упёртой безтолковости и отсутствия реального опыта. Вот и вся разница.

hVosttП.С. У тебя ЧСВ не просто зашкаливает, а трещит по швам. По делу, как обычно, 0, а понтов, как у мелкого хулигана со двора, считающего себя пупом земли.
ЧСВ, понты и прочие твои умные словечки должны на чём-то базироваться, например на знаниях. Я готов общаться с человеком с ЧСВ, с понтами, да хоть с жопой вместо головы - но если он говорит грамотные вещи и так же грамотно приводит аргументы. На всё остальное пох. Главное у него есть моск. Общение же с тобой сводится к канализационщине по причине твоей тупизны с отсутствием элементарной логики. Дальше думай сам. Если есть чем думать.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38888829
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНадо быть полоумным идиотом, чтобы выполнять синхронизацию во время активной работы пользователей. Это чистой воды ИДИОТИЗМ, и пусть хоть кто-то мне скажет, что это не так. Я такого в жизни не видел, чтобы кто-то додумался до этого. Или я не прав?
Млять, убейте уже этого идиота
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889025
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Ты свои два последних высера сообщения перечитай, — где ты по делу хоть что-то сказал? Я (и не только я) уже несколько раз сказал про ACID, ты тупо (именно так, тупо) проигнорил. И кому ты там лечишь про нефитов? Ты сам в этой теме просто далдон Всё, что я пока видел от тебя, это нагугленных ссылок с MSDN с рекомендациями. Иди ещё погугли, ребёнок.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889058
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProhVosttА как выкрутились из ситуации? Забили на чистку логов?очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить.+1

Ораклу помнится сегмента отката может не хватить, если не делать промежуточные коммиты.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889062
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosполный пипецточно :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889117
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ, Ты свои два последних высера сообщения перечитай, — где ты по делу хоть что-то сказал?
Мои высеры по теме - все по деле. Другое дело, что ты идиотом прикидываешься. Или им и являешься? Ну тут уже не мне судить. Облажался - обеткай. А чтобы в следующий раз не обтекать, лучше лишний раз помолчи, чем ересь всякую пороть.

hVosttЯ (и не только я) уже несколько раз сказал про ACID, ты тупо (именно так, тупо) проигнорил.
Транзакция - это последовательность операций, выполняемых как одна логическая единица работы. Логическая единица работы, должна обладать четырьмя свойствами, называется ACID. Что ты хотел мне рассказать про ACID?

hVosttИ кому ты там лечишь про нефитов? Ты сам в этой теме просто далдон Всё, что я пока видел от тебя, это нагугленных ссылок с MSDN с рекомендациями. Иди ещё погугли, ребёнок.
Жалкие конвульсии истерички, которая по голову села в бочку с навозом. Продолжай истерить, а мы посмеемся
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889131
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛогическая единица работы, должна обладать четырьмя свойствами, называется ACID.Раньше да, но...

С приходом огромных массивов информации и распределенных систем мы пришли к eventual consistency :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889138
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМои высеры по теме - все по деле. Другое дело, что ты идиотом прикидываешься. Или им и являешься? Ну тут уже не мне судить. Облажался - обеткай. А чтобы в следующий раз не обтекать, лучше лишний раз помолчи, чем ересь всякую пороть.

Ты больной маразматик. Вот о каких объёмах ты ведёшь речь? О каких задачах? «Реальные массивы данных»? Ты тупица что ли?

— слыш пацанчик, ваще дохуа данных, реаааально дохуа!

И где же я облажался? Ты пальцем покажи, если не балабол. Конекретную цитату, не веди себя как пустопорожняя базарная бабка. Если ты и есть такая бабка, то пофиг, неси что хочешь, я просто перестану обращать внимания на твои выпуки.

МСУТранзакция - это последовательность операций, выполняемых как одна логическая единица работы. Логическая единица работы, должна обладать четырьмя свойствами, называется ACID. Что ты хотел мне рассказать про ACID?

Как ты собираешься обеспечить ACID без транзакций, если транзакции по твоей теории беспощадное «априори» зло?

МСУЖалкие конвульсии истерички, которая по голову села в бочку с навозом. Продолжай истерить, а мы посмеемся

На что, на твои какашки?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889140
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, опять ты со своими NoSQL инкарнациями :) Тут речь немного не о том. Речь о массовых операциях, интеграциях, синхронизациях. Обеспечить ACID на уровне операции (пакет в виде классов) - да, обеспечить ACID на уровне всего импорта - нет. Вот о чем речь.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889146
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAShocker.Proпропущено...
очевидно, операции, затрагивающие такие большие объемы просто делаются в цикле частями. Тут целостность транзакции не нужна. Мало того, суммарно на это уйдет в разы меньше времени, так как СУБД не потребуется делать не*$*ически огромную запись в лог транзакций, а потом ее коммитить.+1

Ораклу помнится сегмента отката может не хватить, если не делать промежуточные коммиты.В MSSQL размер лога транзакций БД тоже можно ограничить. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889147
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУМои высеры по теме - все по деле. Другое дело, что ты идиотом прикидываешься. Или им и являешься? Ну тут уже не мне судить. Облажался - обеткай. А чтобы в следующий раз не обтекать, лучше лишний раз помолчи, чем ересь всякую пороть.

Ты больной маразматик. Вот о каких объёмах ты ведёшь речь? О каких задачах? «Реальные массивы данных»? Ты тупица что ли?

— слыш пацанчик, ваще дохуа данных, реаааально дохуа!

И где же я облажался? Ты пальцем покажи, если не балабол. Конекретную цитату, не веди себя как пустопорожняя базарная бабка. Если ты и есть такая бабка, то пофиг, неси что хочешь, я просто перестану обращать внимания на твои выпуки.
О больших объемах веду речь, выше я писал более конкретно - прочти еще раз. Реальные массивы данных - да. Что тебя пугает?
Я (и не только я) уже несколько раз указали, где ты не просто облажался, а обосрался с ног до головы. Вот тут 17305632

hVosttМСУТранзакция - это последовательность операций, выполняемых как одна логическая единица работы. Логическая единица работы, должна обладать четырьмя свойствами, называется ACID. Что ты хотел мне рассказать про ACID?
Как ты собираешься обеспечить ACID без транзакций, если транзакции по твоей теории беспощадное «априори» зло?
1. Выше я дал код, там обеспечивается транзакционный ACID на уровне батча. Какие проблемы?
2. Где я говорил о том, что транзакции - беспощадное зло? Ты идиот?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889153
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНу все будут ждать, пока не закончится синхронизация данных. Что в этом хорошего?

А главное, ради чего? Ну пусть при сбое синхронизируются данные по половине персонала, ну и что? При следующем сеансе синхронизируется остальное. Тут максимум, в транзакции обновлять информацию об одном сотруднике.

Что за бред? Возьмём, например сайт Хабрахабр. Иногда он проводит профилактические работы, пересчитывает карму там, рейтинги, ещё что-то... На это время сайт недоступен, такое периодически бывает. Надо быть полоумным идиотом, чтобы выполнять синхронизацию во время активной работы пользователей. Это чистой воды ИДИОТИЗМ, и пусть хоть кто-то мне скажет, что это не так. Я такого в жизни не видел, чтобы кто-то додумался до этого. Или я не прав?Все должны равняться на Хабр?

hVosttИ зачем вообще систему подвергать в неоткатное несогласованное состояние? Это нонсенс. Или просто понадеемся на то, что есть свежий бекап?

Принципы ACID ещё никто не отменял.Согласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889154
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANA, опять ты со своими NoSQL инкарнациями :)Да при чём тут NoSQL.
Я просто намекнул, что не плохо бы уточнять о каком уровне операции идёт речь. :)
МСУТут речь немного не о том. Речь о массовых операциях, интеграциях, синхронизациях. Обеспечить ACID на уровне операции (пакет в виде классов) - да, обеспечить ACID на уровне всего импорта - нет. Вот о чем речь.Реализовать импорт милииона чего-то там как атомарную операцию - это конечно глупо :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889157
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
+1

Ораклу помнится сегмента отката может не хватить, если не делать промежуточные коммиты.В MSSQL размер лога транзакций БД тоже можно ограничить. :-)И? :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889158
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
В MSSQL размер лога транзакций БД тоже можно ограничить. :-)И? :)Может сломаться не хуже чем в Оракле. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889165
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
И? :)Может сломаться не хуже чем в Оракле. :-)Ну да. У меня просто после Оракла, где самому надо делать коммиты (а если их не делать, то по шапке надают за повисшие анонимные транзакции), выработался рефлекс.
И, как следствие, с MS SQL проблем пока не было. :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889168
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУО больших объемах веду речь, выше я писал более конкретно - прочти еще раз. Реальные массивы данных - да. Что тебя пугает?
Я (и не только я) уже несколько раз указали, где ты не просто облажался, а обосрался с ног до головы. Вот тут 17305632

Ок, давай посмотрим, на сколько большие объёмы данных ты имел в виду:

МСУЧем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.

МСУВот тебе тот же элементарный кейс, синхронизация информации (фион, табельный номер, подразделение) о сотрудниках из аксапты. 30К сотрудников , представь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал. Какой смысл отката всей транзакции? Да и зачем мне захватывать объекты в БД с определенным уровнем изоляции? Что за бред?

Т.е. ты хочешь сказать, что 30К сотрудников это проблема для транзакции?

Или ты сказал о 30К сотрудников, но на самом деле имел в виду абстрактные миллионы и миллиарды записей в абстрактных базах данных абстрактных организаций в вакууме?

Я зачем кейс просил? Чтобы обсуждать предметно, вести дискуссию по сути, основываясь на каких-то данных, приближенных к реальности. Ты же растёкся говном по кафелю. И это ты обосрался. Если ты так не считаешь, то задам вопрос ещё раз. 30К — проблема для транзакции? Докажешь?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889175
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня. Половина сотрудников успешно импортнулось, половина ещё в процессе. И тут кто-то решил сделать некий сводный отчёт, допустим по КТУ. А как раз вместе с сотрудниками импортятся их обновлённые КТУ. Что получится в отчёте не подскажешь? Просто интересно, кто-то такую ситуацию считает нормально? Если да, то я умываю руки. Видимо мы живём в разных реальностях.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889176
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Может сломаться не хуже чем в Оракле. :-)Ну да. У меня просто после Оракла, где самому надо делать коммиты (а если их не делать, то по шапке надают за повисшие анонимные транзакции), выработался рефлекс.
И, как следствие, с MS SQL проблем пока не было. :) SET IMPLICIT_TRANSACTIONS ON поможет вернуть оракловую романтику.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889180
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня. Половина сотрудников успешно импортнулось, половина ещё в процессе. И тут кто-то решил сделать некий сводный отчёт, допустим по КТУ. А как раз вместе с сотрудниками импортятся их обновлённые КТУ. Что получится в отчёте не подскажешь? Просто интересно, кто-то такую ситуацию считает нормально? Если да, то я умываю руки. Видимо мы живём в разных реальностях.Но если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889192
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня.Вот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :)

hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889203
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :)

hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт.

Я всё понимаю, задачи разные, решения тоже разные. Горячие тур. предложения и, скажем, месячный отчёт о зарплате сотрудникам, вещи таки разные, не находишь? Придёт злющий бухгалтер к МСУ и пусть он ему объясняет, что транзакции априори плохие и тычет в лицо ему рекомендациями от майкрософта.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889208
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.

Ну может где-то вообще не важно. Если не важно, то и фиг с ним
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889216
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.

Решение сделать _ночной_ импорт каких-то данных / реализовать _запрет_ каких-то отчетов во время импорта - ведет к стремительной деградации ИС в целом. Обеспечивайте ACID вне зависимости от времени суток.

Если же какие-то данные надо грузить исключительно ночью, иначе система умрёт - налицо серьезный косяк в архитектуре/проектировании.

И чо вы тут усираетесь - непонятно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889234
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУskyANA, опять ты со своими NoSQL инкарнациями :)Да при чём тут NoSQL.
Я просто намекнул, что не плохо бы уточнять о каком уровне операции идёт речь. :)
NoSQL рассматриваем как eventual consistenc, почему нет. Что ты имеешь ввиду под "уровнем" операции? )

skyANAМСУТут речь немного не о том. Речь о массовых операциях, интеграциях, синхронизациях. Обеспечить ACID на уровне операции (пакет в виде классов) - да, обеспечить ACID на уровне всего импорта - нет. Вот о чем речь.Реализовать импорт милииона чего-то там как атомарную операцию - это конечно глупо :)
Теперь объясни это утырку хвосту :)

hVosttМСУО больших объемах веду речь, выше я писал более конкретно - прочти еще раз. Реальные массивы данных - да. Что тебя пугает?
Я (и не только я) уже несколько раз указали, где ты не просто облажался, а обосрался с ног до головы. Вот тут 17305632
Ок, давай посмотрим, на сколько большие объёмы данных ты имел в виду:
Ты читаешь жопой? 17310432

МСУЧем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.

hVosttТ.е. ты хочешь сказать, что 30К сотрудников это проблема для транзакции?
А почему это не может быть проблемой? "Сотрудник" - может быть не линейной записью, а составной (подклассы Должность, Штатное расписание, Организация и так далее). Процессинг "сотрудника" может длиться не быстро. К примеру, если "сотрудник" процессится секунду, то вся синхронизация из 30К сотрудников займет уже 8 часов. Суть улавливаешь?

hVosttЯ зачем кейс просил? Чтобы обсуждать предметно, вести дискуссию по сути, основываясь на каких-то данных, приближенных к реальности. Ты же растёкся говном по кафелю. И это ты обосрался. Если ты так не считаешь, то задам вопрос ещё раз. 30К — проблема для транзакции? Докажешь?
Я тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889357
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА почему это не может быть проблемой? "Сотрудник" - может быть не линейной записью, а составной (подклассы Должность, Штатное расписание, Организация и так далее). Процессинг "сотрудника" может длиться не быстро. К примеру, если "сотрудник" процессится секунду, то вся синхронизация из 30К сотрудников займет уже 8 часов. Суть улавливаешь?

Пусть. Только при чём тут транзакция? В чём здесь проблема конкретно транзакции? Ты так и не ответил.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)

Ни о чём. Какая ещё любая ситуация, ты больной?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889490
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

тут все просто
Скайана в принципе сказал что надо
тут многие работают с "необязательной информацией" (ну с трех сайтов скачал инфу, а с четвертой неполностью - за это с работы не выгонят, пофиг что там твой клиент не обеспечен полной инфой с 4ех сайтов, убытков не будет скорее всего, в следующий раз все будет ок, мало кокой клиент из такого инцидента уйдет из сайта и т.д.)
с синхронизацией "сотрудников" в принципе то же самое, если на основе этой инфы принимаются какие то решения, которые могут привести к убыткам, то это плохо, а если это инфа нужна для выписки праздничных конвертов по случаю 12 июня, то и пофиг
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889492
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПусть. Только при чём тут транзакция?
Ну вроде взрослый мальчик, пора уже знать, что батчи выполняются в транзакции.

hVosttВ чём здесь проблема конкретно транзакции? Ты так и не ответил.
Я уже 100 раз ответил (и не только я), в чем проблема "конкретно" транзакции. Повышая уровень изоляции и заключая импорт в транзакцию, ты понижаешь вероятность непоследовательности данных, но при этом появляется такой недостаток, как сокращение параллелизма. Вероятность блокировок возрастает и весь этот процесс кардинально влияет на многопользовательский доступ. О этом тоже тебе всё разжевали. Для решения возможных проблем параллелизма в виде зависимости от незафиксированных данных, непоследовательного анализа и чтения фантомов нужно оборачивать ACID объект или группу объектов - у меня в примере EF это группа объектов, которая определяется как пакет из сотни экземпляров классов (с подклассами), определяемые по формуле i % 100 == 0. Это сделано для оптимизации скорости импорта. Если есть желание еще более уменьшить фантомную зависимость, оборачивай в ACID один экземпляр, а не группу. Но тогда приготовься просесть по времени отработки всего импорта. Что не понятно?

hVosttМСУЯ тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)
Ни о чём. Какая ещё любая ситуация, ты больной?
Обычная любая ситуация с импортом данных, что непонятно говорю? Купи себе уже голову, клоун
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889510
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

тут все просто
Скайана в принципе сказал что надо
тут многие работают с "необязательной информацией" (ну с трех сайтов скачал инфу, а с четвертой неполностью - за это с работы не выгонят, пофиг что там твой клиент не обеспечен полной инфой с 4ех сайтов, убытков не будет скорее всего, в следующий раз все будет ок, мало кокой клиент из такого инцидента уйдет из сайта и т.д.)
с синхронизацией "сотрудников" в принципе то же самое, если на основе этой инфы принимаются какие то решения, которые могут привести к убыткам, то это плохо, а если это инфа нужна для выписки праздничных конвертов по случаю 12 июня, то и пофигЕсли в случае ошибки отменятся все результаты сеанса репликации - да, это намного улучшит качество принятия решения.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889520
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли в случае ошибки отменятся все результаты сеанса репликации - да, это намного улучшит качество принятия решения.
Всё или ничего

...
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889530
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosтут многие работают с "необязательной информацией"
Ещё один сцуко теоретик нарисовался Информация у нас всех более чем "обязательная". И эта обязательность, в том числе и информация по сотрудникам, обеспечивается определенной степенью изоляции. Один объект (накладная, банковская операция, сотрудник) не может быть разорван, он либо отпроцессится либо нет. И то и другое - нормальные штатные ситуации. Изолировать нужно объект или группу объектов, но никак не сам процессинг. Когда вы с хвостом убъете уже себя об стену? :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889555
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

не ляля
отчет о численности требует всех
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889556
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как же я буду распределять работы по сотрудникам, если их нет? кто блин ПЛАН будет выполнять? на кого наряды выписывать?
делайте свои сайты и не вымахивайтесь :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889562
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай расстрельный список полностью, а не то дядя берия идет к тебе!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889568
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosотчет о численности требует всех
Отчет с нулевой численностью укротит твою потенцию? )

ViPRosкак же я буду распределять работы по сотрудникам, если их нет? кто блин ПЛАН будет выполнять? на кого наряды выписывать?
Так о том же и речь. Зачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь.

ViPRosдавай расстрельный список полностью, а не то дядя берия идет к тебе!
А нету его, процессинг же упал.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889570
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну жди киллера, тогда
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889599
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ уже 100 раз ответил (и не только я), в чем проблема "конкретно" транзакции. Повышая уровень изоляции и заключая импорт в транзакцию, ты понижаешь вероятность непоследовательности данных, но при этом появляется такой недостаток, как сокращение параллелизма. Вероятность блокировок возрастает и весь этот процесс кардинально влияет на многопользовательский доступ. О этом тоже тебе всё разжевали. Для решения возможных проблем параллелизма в виде зависимости от незафиксированных данных, непоследовательного анализа и чтения фантомов нужно оборачивать ACID объект или группу объектов - у меня в примере EF это группа объектов, которая определяется как пакет из сотни экземпляров классов (с подклассами), определяемые по формуле i % 100 == 0. Это сделано для оптимизации скорости импорта. Если есть желание еще более уменьшить фантомную зависимость, оборачивай в ACID один экземпляр, а не группу. Но тогда приготовься просесть по времени отработки всего импорта. Что не понятно?

Давай так, вот ты привёл пример на EF с группами объектов. Импорт таким способом сколько выполняется по времени? Примерно, ну хотя бы приблизительно? И второй вопрос, работает ли кто-то ещё с БД в то время, когда запускается этот джоб? Скажешь? Я тогда отвечу, почему такое решение плохое.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889607
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

А за подробно описанный процесс конечно спасибо, слегка неожиданно, вот можешь же!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889623
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttДавай так, вот ты привёл пример на EF с группами объектов. Импорт таким способом сколько выполняется по времени? Примерно, ну хотя бы приблизительно?
Вот тут я приводил тебе типовой расчет 17314369 , я не понимаю, ты реально жопой читаешь текст?

hVosttИ второй вопрос, работает ли кто-то ещё с БД в то время, когда запускается этот джоб? Скажешь? Я тогда отвечу, почему такое решение плохое.
Конечно работает. Я выше писал про различные часовые пояса 17310432 , ты каким местом читаешь? Так же с этой БД могут работать другие джобы, ETL под data warehouse и так далее. Работа кипит всегда.

hVosttМСУ, А за подробно описанный процесс конечно спасибо, слегка неожиданно, вот можешь же!
Тебе этот процесс уже битый день люди втирают, так что не надо мне тут заслуги приписывать. Вина только в тебе
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889630
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут 17310383 я выкладывал юнит тест реального джоба, который процессит сотрудников (это вин сервис, источником является odata сервис аксапты, приемником - отдельная БД под различное ПО). Как видишь отработка заняла 181 минуту, это примерно навскидку 0.4 секунды на одного сотрудника. Но это тестовая БД, к слову. На боевой БД сотрудников побольше, но и мощностя иные.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889641
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЗачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь.

Ну если такое у вас (или у вашего заказчика) является нормальным, тогда твоё решение ваще гуд!

Но у наших заказчиков требования к надёжности весьма высокие, а у нас требования к нашим разработкам очень высокие. Недопустимы такие косяки, когда система в какой-то момент времени находится в неконсистентном состоянии. Если импорт, то либо загрузилось всё без ошибок, либо загрузка с косяками не нужна вообще, ни в каком виде, ни 80%, ни 99%. Надо разбираться в чём ошибка, исправлять и добиваться 100% успешной транзакции.

Что за дебильный типично колхозно-крестьянский принцип: запихнуть что хоть как-то пихается, а что не пихается запинать ногами, да и пох. Не знаю, если только ты там не для колхоза свои решения пилишь.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889648
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВот тут 17310383 я выкладывал юнит тест реального джоба, который процессит сотрудников (это вин сервис, источником является odata сервис аксапты, приемником - отдельная БД под различное ПО). Как видишь отработка заняла 181 минуту, это примерно навскидку 0.4 секунды на одного сотрудника. Но это тестовая БД, к слову. На боевой БД сотрудников побольше, но и мощностя иные.
181мин!!!!!!
ужас какой то
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889650
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще, касательно оптимизации. Джобы выполняются асинхронно, разумеется. Если нужно оптимизировать процессинг, всегда можно его разнести на n джобов, что ускорит отработку. Либо как вариант процессить в n потоках. Как по мне, больше нравится второй вариант, он чище и грамотнее. Но подойдет и ленивый первый вариант, где нужно просто разделить выборки по какому-то искуственному критерию, как то даты, дни недели дат, чётность ID, группы, части top/skip и так далее. Оптимизация бесконечна :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889651
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos181мин!!!!!!
ужас какой то

Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»!
Даже не так. НЕ РЕАЛЬНЫЙ!
Всякое гугло сосёт причмокивая
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889665
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУЗачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь.
Ну если такое у вас (или у вашего заказчика) является нормальным, тогда твоё решение ваще гуд!
Объясни мне, почему такое решение может быть ненормальным? Вот Сахават что-то булькал-булькал и слился, так и не смог объяснить, накойхер (с) ему всё или ничего.

hVosttНо у наших заказчиков требования к надёжности весьма высокие, а у нас требования к нашим разработкам очень высокие.
У так тоже требования к надежности высокие, где ты тут увидел какие-то послабления?

hVosttНедопустимы такие косяки, когда система в какой-то момент времени находится в неконсистентном состоянии.
У меня тоже самое, неконсистентное состояние исключено.

hVosttЕсли импорт, то либо загрузилось всё без ошибок, либо загрузка с косяками не нужна вообще, ни в каком виде, ни 80%, ни 99%. Надо разбираться в чём ошибка, исправлять и добиваться 100% успешной транзакции.
Ситуации разные бывают, есть такие предметные области, в которой нужно именно 100% импорта. Например, рассмотрим загрузку месячных продаж. Бизнесу не нужно 90% продаж за день 01.02.2015, поэтому если именно 01.02 оказался "битым" днем, такая информация не играет роли. Но зачем отказывать всесь импорт, если 02.02.2015 полностью 100% прогрузился? О том и речь, что с неконсистентное бывает иногда неконсистентным, такой вот каламбур.

hVosttЧто за дебильный типично колхозно-крестьянский принцип: запихнуть что хоть как-то пихается, а что не пихается запинать ногами, да и пох. Не знаю, если только ты там не для колхоза свои решения пилишь.
Выше я объяснил. Люди работают с продажами за 02.02.2012, которые 100% прогрузились. Зачем их лишать этой возможности?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889670
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos181мин!!!!!!
ужас какой то

Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»!
Даже не так. НЕ РЕАЛЬНЫЙ!
Всякое гугло сосёт причмокивая

3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889671
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуации разные бывают, есть такие предметные области, в которых нужно именно 100% импорта. Например, рассмотрим загрузку месячных продаж. Бизнесу не нужно 90% продаж за день 01.02.2015, поэтому если именно 01.02 оказался "битым" днем, такая информация не играет роли. Но зачем откатывать весь импорт, если 02.02.2015 полностью 100% прогрузился? О том и речь, что неконсистентное бывает иногда консистентным, такой вот каламбур.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889674
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttпропущено...


Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»!
Даже не так. НЕ РЕАЛЬНЫЙ!
Всякое гугло сосёт причмокивая

3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно

Наоборот. Тебе просто надо наверное табличку Sarcasm показывать )))
По поводу твоего решения сейчас отвечу.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889676
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAВот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :)

hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт.

Я всё понимаю, задачи разные, решения тоже разные. Горячие тур. предложения и, скажем, месячный отчёт о зарплате сотрудникам, вещи таки разные, не находишь?Хм, вообще не удачный пример.

Ежемесячный отчёт. Почему синхронизация выпадает именно на этот день месяца, когда формируется отчёт?

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

Согласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889681
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :)А при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889719
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОбъясни мне, почему такое решение может быть ненормальным? Вот Сахават что-то булькал-булькал и слился, так и не смог объяснить, накойхер (с) ему всё или ничего.

Ну давай, по твоей информации:

примерный срок выполнения: 3 часа

в это время с базой данных активно взаимодействуют другие системы и пользователи

ОК

Заценим на временной линии:

Код: c#
1.
2.
3.
4.
5.
    Начало загрузки                                                Окончание загрузки
          | 15:00                                                        | 18:00
          O ============================================================ O
                      | 15:40                                | 17:38
                     Петя                                   Вася



В 15:40 в базе появилась актуальная инфа о Пете, в 17:38 о Васе.

Т.е. инфа на момент начала загрузки была одна, а вот актуальность данных меняется с течением времени, и с 15:00 до 18:00 база данных вообще непонятно в каком состоянии, и как можно с этим работать, не понимаю? Это что нормально? Т.е. активные пользователи получают не просто не актуальную информацию (когда данные ещё не загрузились), а вообще непонятно что. Совершенно очевидно, что сводными отчётами в процессе загрузки можно только зад подтереть. Если бы обеспечивалась транзакционность, то хотябы состояние базы было бы актуально на определённый момент (до загрузки или после), а не черти что. В чём великий смысл этого идиотизма, не понимаю.

С другой стороны такое решение можно было бы ещё принять, если бы оно применялось по регламенту или применялись другие способы обеспечивания консистентности данных, раз уж ты так упираешься против транзакций.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889722
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

не ляля
отчет о численности требует всехДелай отчёт по численности на той БД, где эти объекты хранятся. Репликация - зло!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889727
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются.

Какие-то странные обходные манёвры, так и не понятно ради чего эти пляски с бубном.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889729
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttпропущено...


Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»!
Даже не так. НЕ РЕАЛЬНЫЙ!
Всякое гугло сосёт причмокивая

3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно
мусь, покажи другие весчи, посмеемся немного, а то работа надоела совсем
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889733
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕжемесячный отчёт. Почему синхронизация выпадает именно на этот день месяца, когда формируется отчёт?

Потому что сказано из условий МСУ, с БД работают во время импорта данных со всего земного шарика. Так что такая вероятность в таких условиях не исключена. Я понимаю, блокировки это неприятно, и с ними надо бороться, но нарушение единой целостности и актуальности это гораздо больший косяк. Не вижу причин на 30К записей не использовать транзакцию. Если записей миллионы, то нужны другие подходы и регламенты. Но простая пакетная загрузка во время активной работы пользователей тоже не катит нифига!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889736
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТ.е. инфа на момент начала загрузки была одна, а вот актуальность данных меняется с течением времени, и с 15:00 до 18:00 база данных вообще непонятно в каком состоянии, и как можно с этим работать, не понимаю?У "сотрудник" есть поле "дата/время синхронизации". Вполне понятно в каком состоянии.
hVosttЭто что нормально? Т.е. активные пользователи получают не просто не актуальную информацию (когда данные ещё не загрузились), а вообще непонятно что. Совершенно очевидно, что сводными отчётами в процессе загрузки можно только зад подтереть. Если бы обеспечивалась транзакционность, то хотябы состояние базы было бы актуально на определённый момент (до загрузки или после), а не черти что. В чём великий смысл этого идиотизма, не понимаю.

С другой стороны такое решение можно было бы ещё принять, если бы оно применялось по регламенту или применялись другие способы обеспечивания консистентности данных, раз уж ты так упираешься против транзакций.Все эти проблемы решаются отказом от репликации.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889737
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ не подобрее от того, что узнает, что ему теперь ещё и ждать когда всё это произойдёт в одной транзакции, которая ещё и упадёт.

О... о задержке он узнает сразу, так как это блокировка. Это конечно проблема.
Но ещё большая проблема, если отчёт сдан, подписан, а он писец вообще ни о чём. ВОни будет не только от бухгалтера, но и от руководства, а МСУ будет им рекомендациями от майкрософта тыкать в нос
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889738
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAА при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются.

Какие-то странные обходные манёвры, так и не понятно ради чего эти пляски с бубном.Обходные манёвры чего, незапланированного выходного у бухгалтера? :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889739
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :)

Самое гуманное, это обеспечить неблокирующую транзакционность, а не прыгать в припляску с бубном )
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889741
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAИ не подобрее от того, что узнает, что ему теперь ещё и ждать когда всё это произойдёт в одной транзакции, которая ещё и упадёт.

О... о задержке он узнает сразу, так как это блокировка. Это конечно проблема.
Но ещё большая проблема, если отчёт сдан, подписан, а он писец вообще ни о чём. ВОни будет не только от бухгалтера, но и от руководства, а МСУ будет им рекомендациями от майкрософта тыкать в нос Ну говорил же, отключить некоторые отчёты на время синхронизации.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889743
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :)

Самое гуманное, это обеспечить неблокирующую транзакционность, а не прыгать в припляску с бубном )Хм, а я о чём?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889745
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОбходные манёвры чего, незапланированного выходного у бухгалтера? :)

А в банковской системе, где обеспечение транзакций превыше всего, конечно вообще домой никогда не ходят. Спят прям на рабочем месте. И едят там же. И детей делают там. Там же повсюду транзакции, прям настоящий транзакционный АД
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889747
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХм, а я о чём?

Ну так и я о чём.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889750
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAОбходные манёвры чего, незапланированного выходного у бухгалтера? :)

А в банковской системе, где обеспечение транзакций превыше всего, конечно вообще домой никогда не ходят. Спят прям на рабочем месте. И едят там же. И детей делают там. Там же повсюду транзакции, прям настоящий транзакционный АД Ты походу никогда с банковскими системами не работал :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889751
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу говорил же, отключить некоторые отчёты на время синхронизации.

Ну так это типа и есть уже какая-то блокировка. Пускай не всей базы, но отчётов. Уже не айс )
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889756
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы походу никогда с банковскими системами не работал :)

Тебе похоже тоже нужна табличка Sarcasm Ж)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889758
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAХм, а я о чём?

Ну так и я о чём.Фиг знает. Я не понял, что предлагаешь бедному бухгалтеру: ждать пока закончится твоя жирная транзакция и молиться, чтобы она не завалилась, или домой идти? :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889759
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНу говорил же, отключить некоторые отчёты на время синхронизации.

Ну так это типа и есть уже какая-то блокировка. Пускай не всей базы, но отчётов. Уже не айс )Только пары отчётов. Главное, чтобы работа оперативных сотрудников не была нарушена.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889761
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAТы походу никогда с банковскими системами не работал :)

Тебе похоже тоже нужна табличка Sarcasm Ж)Я могу без сарказма привести пример из практики интеграции с банковскими системами.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889762
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУ "сотрудник" есть поле "дата/время синхронизации". Вполне понятно в каком состоянии.

Ну вот Васю и Петю повысили в одно время, а когда эти оба притопали на новое рабочее место, пустили только Васю, Петя тёрся в коридоре пока не обновились его данные
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889768
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAФиг знает. Я не понял, что предлагаешь бедному бухгалтеру: ждать пока закончится твоя жирная транзакция и молиться, чтобы она не завалилась, или домой идти? :)

Не, я за обеспечение неблокирующей транзакционности. Чем это достигается, вопрос второй. Но типо длительная пакетная загрузка во время активной работы пользователей, это просто бесчеловечно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889769
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ могу без сарказма привести пример из практики интеграции с банковскими системами.

Приведи плз.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889771
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAФиг знает. Я не понял, что предлагаешь бедному бухгалтеру: ждать пока закончится твоя жирная транзакция и молиться, чтобы она не завалилась, или домой идти? :)

Не, я за обеспечение неблокирующей транзакционности. Чем это достигается, вопрос второй. Но типо длительная пакетная загрузка во время активной работы пользователей, это просто бесчеловечно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889774
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТолько пары отчётов. Главное, чтобы работа оперативных сотрудников не была нарушена.

Других способов совсем нет?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889784
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAФиг знает. Я не понял, что предлагаешь бедному бухгалтеру: ждать пока закончится твоя жирная транзакция и молиться, чтобы она не завалилась, или домой идти? :)

Не, я за обеспечение неблокирующей транзакционности. Чем это достигается, вопрос второй. Но типо длительная пакетная загрузка во время активной работы пользователей, это просто бесчеловечно.С фигали это безчеловечно-то? Безчеловечно - это когда она написана так, что делать что-либо в системе невозможно, пока она идёт.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889785
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAЯ могу без сарказма привести пример из практики интеграции с банковскими системами.

Приведи плз.Ок, чуть позже.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889791
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAС фигали это безчеловечно-то? Безчеловечно - это когда она написана так, что делать что-либо в системе невозможно, пока она идёт.

И это тоже бесчеловечно, не спорю.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889800
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТ.е. инфа на момент начала загрузки была одна, а вот актуальность данных меняется с течением времени, и с 15:00 до 18:00 база данных вообще непонятно в каком состоянии, и как можно с этим работать, не понимаю? Это что нормально?
Твою неопытность видно за версту :) Процессинг, ETL, DWH, репликация и иже с ними - априори не могут быть актуальными относительно источника данных. Всегда есть какая временная дельта, разрыв во времени. Это нормально.

hVosttТ.е. активные пользователи получают не просто не актуальную информацию (когда данные ещё не загрузились), а вообще непонятно что. Совершенно очевидно, что сводными отчётами в процессе загрузки можно только зад подтереть. Если бы обеспечивалась транзакционность, то хотябы состояние базы было бы актуально на определённый момент (до загрузки или после), а не черти что. В чём великий смысл этого идиотизма, не понимаю.
Работал когда-нибудь с OLAP DWH? Процессинг кубов, мер, измерений всегда трудозатратная по времени операция, временное расхождение актуальных данных с боевой БД достигает от 1 дня и выше. Это нормально.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889814
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТвою неопытность видно за версту :) Процессинг, ETL, DWH, репликация и иже с ними - априори не могут быть актуальными относительно источника данных. Всегда есть какая временная дельта, разрыв во времени. Это нормально.

Да не про временную дельту идёт речь. То, что для загрузки требуется время, это понятно. Речь идёт об консистентности. Короче, неблокирующую транзакцию как обеспечить знаешь или нет, скажи мне, опытный ты наш.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889815
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРаботал когда-нибудь с OLAP DWH? Процессинг кубов, мер, измерений всегда трудозатратная по времени операция, временное расхождение актуальных данных с боевой БД достигает от 1 дня и выше. Это нормально.

Немного, но да, работал. Ещё раз повторяю, проблема не в актуальности, а в её нарушении. Пусть данные будут актуальны за вчера, но целостны. Разрывы не уместны.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889869
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttДа не про временную дельту идёт речь. То, что для загрузки требуется время, это понятно. Речь идёт об консистентности. Короче, неблокирующую транзакцию как обеспечить знаешь или нет, скажи мне, опытный ты наш.
1. "Консистентности" всего процессинга? :) Такого не бывает, это сказки. А от консистентности батча (пакета, группы, экземпляра) - всегда вэлкам.
2. Что такое "неблокирующая транзакция"? Опять жжешь напалмом?

hVosttМСУРаботал когда-нибудь с OLAP DWH? Процессинг кубов, мер, измерений всегда трудозатратная по времени операция, временное расхождение актуальных данных с боевой БД достигает от 1 дня и выше. Это нормально.
Немного, но да, работал. Ещё раз повторяю, проблема не в актуальности, а в её нарушении. Пусть данные будут актуальны за вчера, но целостны. Разрывы не уместны.
Если ты под "данными" за вчера понимаешь весь процессинг, то я тебе уже 100 раз сказал, что это глупость. Объясняю 101 раз.

1. Процессинг "данных за вчера" обвалился на 99% выполненной работе.
2. Сегодня ты хочешь получить "данные за вчера", а их там нет. Что делать?
3. Одному пользователю нужен только 1% информации из этих 99%, другому нужно 5% из 99%, третьему - 10% из 99%. Зачем их лишать этих данных?
4. Образно говоря, в моём случае 80% сотрудников будут работать в штатном режиме и только 20% будут испытывать трудности, т.к. 1% невыполненной работы у тебя завалился. В твоём случае 100% работников будут сосать писю.
5. Профиты?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889946
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ1. "Консистентности" всего процессинга? :) Такого не бывает, это сказки. А от консистентности батча (пакета, группы, экземпляра) - всегда вэлкам.

Ну почему не бывает, просто никто не говорит, что это просто. В зависимости от задачи можно разработать различные сценарии для достижения этого результата. Или будешь утверждать, что это задача абсолютно не выполнимая?

МСУ2. Что такое "неблокирующая транзакция"? Опять жжешь напалмом?

Это значит, что существует два состояния: до загрузки/обработки/синхронизации данных и после, а не где-то между. При больших объёмах использование транзакции базы данных приносит много боли пользователям ради достижения этой цели. И ты хочешь сказать, что по-другому нельзя? Либо блокирующие страдания, либо батчи?

МСУ1. Процессинг "данных за вчера" обвалился на 99% выполненной работе.

Да, обвалился по причине неизвестной заранее ошибки, потому что иначе ситуация была бы правильно обработана, и ошибки бы не случилось. Раз имеется такая ошибка, значит и всей логике загрузки доверять как-то сомнительно, это надо чинить. Лучше пару раз поймать и починить, чем постоянно ловить «недосказанность» + постоянные периоды времени в полу-недоактуальном половинчатом хер пойми каком недосостоянии.

МСУ2. Сегодня ты хочешь получить "данные за вчера", а их там нет. Что делать?

Ну я хочу получить данные за вчера, а не что-то-за-вчера-а-что-то-за-позавчера, полусостояние какое-то. Особенно если требуется сводные цифры, с учётом «до копья».

МСУ4. Образно говоря, в моём случае 80% сотрудников будут работать в штатном режиме и только 20% будут испытывать трудности, т.к. 1% невыполненной работы у тебя завалился. В твоём случае 100% работников будут сосать писю.

Как раз наоборот. В штатном режиме должно всё работать и давать 100% результат. Если что-то упало, значит косяк в логике, значит нафиг такая загрузка хоть в каком процентном эквиваленте нужна. Надо чинить. Или, если система не какая-нибудь банковская, то пох?

МСУ5. Профиты?

Ну, если постепенная побатчевая загрузка вообще никому не мешает, не портит и не влияет никоим образом ни на какие отчёты, ни с чем и ни с кем не конфликтует, всем юзерам целостность данных по барабану, если это заранее известно, что не надо строить иллюзий на 100% уверенность в актуальной инфе, пусть загружается хоть сколько-нибудь. То да, в твоём решении имеется чистый профит.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890029
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМСУ1. "Консистентности" всего процессинга? :) Такого не бывает, это сказки. А от консистентности батча (пакета, группы, экземпляра) - всегда вэлкам.
Ну почему не бывает, просто никто не говорит, что это просто. В зависимости от задачи можно разработать различные сценарии для достижения этого результата. Или будешь утверждать, что это задача абсолютно не выполнимая?
Речь не о простоте или сложности, речь о бывает или не бывает. Сценарий просессинга всегда прост - процессить. В процессинге единичного экземпляра или группы интереса никакого нет, процессят всегда набор экземпляров или групп. Оборачивать процессинг экземпляров или групп в ACID - смертоубийственная затея, о которой тебе тут все тылдычат.

hVosttМСУ2. Что такое "неблокирующая транзакция"? Опять жжешь напалмом?
Это значит, что существует два состояния: до загрузки/обработки/синхронизации данных и после, а не где-то между. При больших объёмах использование транзакции базы данных приносит много боли пользователям ради достижения этой цели. И ты хочешь сказать, что по-другому нельзя? Либо блокирующие страдания, либо батчи?
Я тебе выше уже сказал, что оборачивать процессинг в ACID - это как упаковать столичное Киевское шоссе в презерватив. Лопнет или не лопнет. А зачем? А фиг его знает. Так хвост захотел.

hVosttМСУ1. Процессинг "данных за вчера" обвалился на 99% выполненной работе.
Да, обвалился по причине неизвестной заранее ошибки, потому что иначе ситуация была бы правильно обработана, и ошибки бы не случилось. Раз имеется такая ошибка, значит и всей логике загрузки доверять как-то сомнительно, это надо чинить. Лучше пару раз поймать и починить, чем постоянно ловить «недосказанность» + постоянные периоды времени в полу-недоактуальном половинчатом хер пойми каком недосостоянии.
Да причем тут логика? Обвалился процессинг по причине того, что сервер ушел в ребут, нештатная ситуация у DBA и отвалилась база, закончилось место, уборщица жопой задела витую пару, затопило серверную, ураган, смерч, цунами, пьяный админ попутал, террористы, проводка погорела, попёрло гавно из санузла и давлением вдавило каки в стойку, ... Ещё?

hVosttМСУ2. Сегодня ты хочешь получить "данные за вчера", а их там нет. Что делать?
Ну я хочу получить данные за вчера, а не что-то-за-вчера-а-что-то-за-позавчера, полусостояние какое-то. Особенно если требуется сводные цифры, с учётом «до копья».
Сводные цифры сами по себе никому не нужны. Сводные цифры всегда в разрезе чего-то (период, тип, операция и так далее). Это называется измерением, мерой. Кто-то мерит одной мерой, кто-то другой. Зачем лишать пользователей 100% мер? Улавливаешь суть? Представь ситуацию, в горводе произошла авария и пропала холодная вода. А тебе за это отключили свет, газ и антенну. Справедливо? Ты начинаешь писать жалобы, а тебе в ответ - "раз имеется такая ошибка, значит и всей логике жилобеспечения доверять как-то сомнительно, это надо чинить". Занавес.

hVosttМСУ4. Образно говоря, в моём случае 80% сотрудников будут работать в штатном режиме и только 20% будут испытывать трудности, т.к. 1% невыполненной работы у тебя завалился. В твоём случае 100% работников будут сосать писю.
Как раз наоборот. В штатном режиме должно всё работать и давать 100% результат. Если что-то упало, значит косяк в логике, значит нафиг такая загрузка хоть в каком процентном эквиваленте нужна. Надо чинить. Или, если система не какая-нибудь банковская, то пох?
Никогда никто не даст таких гарантий, что всегда будет штатная ситуация и всё 100% отработает. Ты в космосе что ли? Я выше сказал, упало - это обязательно косяк в логике. Осознай это.

hVosttМСУ5. Профиты?
Ну, если постепенная побатчевая загрузка вообще никому не мешает, не портит и не влияет никоим образом ни на какие отчёты, ни с чем и ни с кем не конфликтует, всем юзерам целостность данных по барабану, если это заранее известно, что не надо строить иллюзий на 100% уверенность в актуальной инфе, пусть загружается хоть сколько-нибудь. То да, в твоём решении имеется чистый профит.
В моём решении - единственно верный вариант. Других вариантов быть не может. Абсолютно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890076
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot hVostt]МСУДа не про временную дельту идёт речь. То, что для загрузки требуется время, это понятно. Речь идёт об консистентности.

500 человек ходят по области и городу, набивают заказы в свои терминалы. Потом передают в офис. И вдруг у одного чего-то не заладилось.

ЧУ!! ALARM!

Система мгновенно откатывает состояние рабочего дня на 00.00.01? Ведь импорт всех заказов не прошел на 100% - всем покинуть корабль?

Или весь текущий импорт она метит хеш-тегами #"несчастливая звезда" #"всё пошло не так" и очищает результаты его работы?

Нет, система "засосет" столько, сколько сможет. Пометит то, что прочитала, а при следующей загрузке прожует то, что осталось.

И если кусок случился совсем уж непрожеванным - то по итогам операционного дня в систему не попадет ОДИН заказ из 10 000.

Можно сколько угодно оттопыривать пальчик и расшифровывать ACID задом наперед, но попробуйте ответсвенному/заинтересованному за продажи объяснить, что отгрузки за день не будет, потому что данные, видите ли - НЕ КОНСИСТЕНТНЫ...!!!

Отрезвление придет очень быстро.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890085
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А уж в таких операциях как импорт/репликация вообще понятие консистентность применимо с БОЛЬШОЙ натяжкой, так как само содержание этих операций нифига не детерминировано, а в зависимости от внешних факторов может быть абсолютно разным.

А вот такая БЕ, как сотрудник, заказ - любой объект доменной модели должен быть непротиворечив. И именно эта единица - будет атомарной единицей обмена.



Какой-то странный, чисто IT-шный подход. В систему ломятся 10 000 заказов, но мы их не пустим, потому как там где-то есть паршивая овца.

Сколько будет искать? Пока не найдем.

И вот, за минуту до конца рабочего дня, IT-шники грузят заказы в базу.

Довольные утирают пот и недоумевают, почему вместо грамоты - их лишают премии/указывают на дверь/пускают по кругу.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890122
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
невежество всегда воинственна
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890230
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ выше сказал, упало - это не обязательно косяк в логике. Осознай это.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890310
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРечь не о простоте или сложности, речь о бывает или не бывает. Сценарий просессинга всегда прост - процессить. В процессинге единичного экземпляра или группы интереса никакого нет, процессят всегда набор экземпляров или групп. Оборачивать процессинг экземпляров или групп в ACID - смертоубийственная затея, о которой тебе тут все тылдычат.

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

Например, вернёмся к твоему кейсу синхронизации 30К сотрудников. Учитывая, что синхронизация происходит периодически, наверняка среди 30К записей за короткий период реальных изменений реально меньше, чем 30К. Значит можно сначала определить весь объём этих изменений и выполнить их в рамках транзакции, это будет достаточно быстро, чтобы никто не испытывал проблем. Решение конечно же будет сложнее, чем тот кусок кода, что ты привёл, который ТУПО прогоняет один и тот же алгоритм обработки по всем записям.

Из реального опыта. Лет 5 назад, работая в большой организации проводил рефакторинг периодического импорта данных учёта материальных запасов из R/3 в другую систему на базе Oracle. До рефакторинга процедура отрабатывала в течении 5-8 часов, запускалась ночью и имела как раз такую проблему, о которой я тебе талдычил: иногда выпадали пакеты, что составляло актуальность загрузки на уровне 98-99%. Ты говоришь — да это фигня, подумаешь, ничего 100% не бывает, а в организации с этим испытывали проблемы. Решение импорта было очень похоже на твой код. Рефакторинг заключался в том, чтобы загрузить данные в служебные таблицы, никак не участвующие в бизнес-логике. Затем определить характер изменений. Затем в единой транзакции осуществить реальный импорт. Время импорта сократилось с 5-8 часов до 15 минут в среднем (в зависимости от объёма изменений). При чём ошибочные записи оставались в служебных таблицах и могли быть доимпортированы, после исправления ошибок в данных. Решение всех устроило и работает до сих пор по моим сведениям.

Так что не лечи меня, милый товарищ на счёт невозможности и единственно правильного во всём мире решения этой задачи.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890318
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ тебе выше уже сказал, что оборачивать процессинг в ACID - это как упаковать столичное Киевское шоссе в презерватив. Лопнет или не лопнет. А зачем? А фиг его знает. Так хвост захотел.

Не уместное сравнение. Ты сравниваешь биллинг с единым импортом. Другими словами, ты сравниваешь поток машин на шоссе, с поездом, с которого не слезет ни один пассажир до полной остановки всего состава. Ты же предлагаешь, как только первый вагон оказался в пределах досягаемости платформы сталкивать пассажиров на перрон, чтобы быстрее типа разгрузить состав
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890332
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДа причем тут логика? Обвалился процессинг по причине того, что сервер ушел в ребут, нештатная ситуация у DBA и отвалилась база, закончилось место, уборщица жопой задела витую пару, затопило серверную, ураган, смерч, цунами, пьяный админ попутал, террористы, проводка погорела, попёрло гавно из санузла и давлением вдавило каки в стойку, ... Ещё?

Тем более. Пол процессинга прошло, и тут произошло что-то из описанного тобой. В итоге в базе данных только половина актуализированной информации. Зипись чо.

МСУСводные цифры сами по себе никому не нужны. Сводные цифры всегда в разрезе чего-то (период, тип, операция и так далее). Это называется измерением, мерой. Кто-то мерит одной мерой, кто-то другой. Зачем лишать пользователей 100% мер? Улавливаешь суть? Представь ситуацию, в горводе произошла авария и пропала холодная вода. А тебе за это отключили свет, газ и антенну. Справедливо? Ты начинаешь писать жалобы, а тебе в ответ - "раз имеется такая ошибка, значит и всей логике жилобеспечения доверять как-то сомнительно, это надо чинить". Занавес.

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

МСУНикогда никто не даст таких гарантий, что всегда будет штатная ситуация и всё 100% отработает. Ты в космосе что ли? Я выше сказал, упало - это обязательно косяк в логике. Осознай это.

Гарантии как раз таки обычно имеются. Как имеются и риски. Если тебе поставили задачу, а ты развёл руками «ну так нельзя...» и тычешь в нос чужими рекомендациям, то просто найдут другого исполнителя, способного пошевелить мозгами и решить задачу, а не ипать мозг.

МСУВ моём решении - единственно верный вариант. Других вариантов быть не может. Абсолютно.

В твоём решении возможно, всех деталей твоей задачи я не знаю, возможно именно такое решение там всех устраивает. Но это не единственно верный вариант. И другие варианты есть. Всегда есть.

Ты напоминаешь мне дядю Билли, который орал 640Кб хватит всем!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890430
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРечь идёт именно о простоте или сложности. Сценарий топорного процессинга это всего лишь результат банальной лени разработчика, который не удосужился расчёхлить свои извилины и подумать.
По-моему, тут у кого-то другого проблемы с извилинами. Почему? Потому что он полный ноль в базах данных, репликациях, синхронизациях, фантомности данных, изоляциях, ETL, BI и так далее. Вот меня это и веселит, ты дуб дубом по теме, но несешь каку-то чушь про лень программиста.

hVosttНапример, вернёмся к твоему кейсу синхронизации 30К сотрудников. Учитывая, что синхронизация происходит периодически, наверняка среди 30К записей за короткий период реальных изменений реально меньше, чем 30К. Значит можно сначала определить весь объём этих изменений и выполнить их в рамках транзакции, это будет достаточно быстро, чтобы никто не испытывал проблем. Решение конечно же будет сложнее, чем тот кусок кода, что ты привёл, который ТУПО прогоняет один и тот же алгоритм обработки по всем записям.
Правильное замечание. Но это повлечет за собой доработку системы источника, что не всегда вписывается в сроки и приоритеты. 30К + 3 часа на процессинг - это не много, проще никого не напрягать и взять весь набор данных с источника. В любом случае, представь себе ситуацию, когда эти 30К - именно количество сотрудников, которых нужно отпроцессить. Либо пусть это будут продажи за месяц, количество экземпляров 100М. Включи абстракцию. Количество данных может быть и больше. Это не играет никакой роли. Главное одно - нужно отпроцессить много данных.

hVosttРефакторинг заключался в том, чтобы загрузить данные в служебные таблицы, никак не участвующие в бизнес-логике. Затем определить характер изменений. Затем в единой транзакции осуществить реальный импорт. Время импорта сократилось с 5-8 часов до 15 минут в среднем (в зависимости от объёма изменений). При чём ошибочные записи оставались в служебных таблицах и могли быть доимпортированы, после исправления ошибок в данных. Решение всех устроило и работает до сих пор по моим сведениям.
Это не рефакторинг, это оптимизация. Не путай теплое с мягким. Оптимизация нужна тогда, когда текущее положение дел становится неприемлемым. Это нормальный процесс. Изначально и заранее никто ничего не отпимизирует. На рельсы ставится готовое решение, которое удовлетворяет требованиям. Так что пример немного не в кассу.

hVosttТак что не лечи меня, милый товарищ на счёт невозможности и единственно правильного во всём мире решения этой задачи.
Включи голову уже. Твоя тупость безгранична.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38890442
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТем более. Пол процессинга прошло, и тут произошло что-то из описанного тобой. В итоге в базе данных только половина актуализированной информации. Зипись чо.
Да, всё верно. А в твоём случае 0% актуальных данных. Это лучше?

hVosttПоэтому я тебе и говорил, что решение будет сложнее, чем представленное тобой, чтобы учитывать всё, нагрузку, требования, целостность, защищённость, возможность параллельного доступа, единую актуализацию... и не отключать свет, если пропала холодная вода.
О каких сложностях ты говоришь? Заблокировать в распределенной транзакции нахер всю таблицу сотрудников, чтобы все остальные соснули болт? Ты думаешь, что предлагаешь?

hVosttГарантии как раз таки обычно имеются. Как имеются и риски. Если тебе поставили задачу, а ты развёл руками «ну так нельзя...» и тычешь в нос чужими рекомендациям, то просто найдут другого исполнителя, способного пошевелить мозгами и решить задачу, а не ипать мозг.
Ну если есть риски, тогда какие вопросы? Предположим риск выстрелил. Твои действия?

hVosttМСУВ моём решении - единственно верный вариант. Других вариантов быть не может. Абсолютно.
В твоём решении возможно, всех деталей твоей задачи я не знаю, возможно именно такое решение там всех устраивает. Но это не единственно верный вариант. И другие варианты есть. Всегда есть.
Да какие детали. Суть одна - импорт нельзя заключать в транзакцию. Вообще. Никак. Нельзя. Напиши себе фломастером на лбу и запомни это.

hVosttТы напоминаешь мне дядю Билли, который орал 640Кб хватит всем!
Опять левый пример.
...
Рейтинг: 0 / 0
179 сообщений из 179, показаны все 8 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]