powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
25 сообщений из 179, страница 6 из 8
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
25 сообщений из 179, страница 6 из 8
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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