|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttДавай так, вот ты привёл пример на EF с группами объектов. Импорт таким способом сколько выполняется по времени? Примерно, ну хотя бы приблизительно? Вот тут я приводил тебе типовой расчет 17314369 , я не понимаю, ты реально жопой читаешь текст? hVosttИ второй вопрос, работает ли кто-то ещё с БД в то время, когда запускается этот джоб? Скажешь? Я тогда отвечу, почему такое решение плохое. Конечно работает. Я выше писал про различные часовые пояса 17310432 , ты каким местом читаешь? Так же с этой БД могут работать другие джобы, ETL под data warehouse и так далее. Работа кипит всегда. hVosttМСУ, А за подробно описанный процесс конечно спасибо, слегка неожиданно, вот можешь же! Тебе этот процесс уже битый день люди втирают, так что не надо мне тут заслуги приписывать. Вина только в тебе ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:46 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Вот тут 17310383 я выкладывал юнит тест реального джоба, который процессит сотрудников (это вин сервис, источником является odata сервис аксапты, приемником - отдельная БД под различное ПО). Как видишь отработка заняла 181 минуту, это примерно навскидку 0.4 секунды на одного сотрудника. Но это тестовая БД, к слову. На боевой БД сотрудников побольше, но и мощностя иные. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:50 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУЗачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь. Ну если такое у вас (или у вашего заказчика) является нормальным, тогда твоё решение ваще гуд! Но у наших заказчиков требования к надёжности весьма высокие, а у нас требования к нашим разработкам очень высокие. Недопустимы такие косяки, когда система в какой-то момент времени находится в неконсистентном состоянии. Если импорт, то либо загрузилось всё без ошибок, либо загрузка с косяками не нужна вообще, ни в каком виде, ни 80%, ни 99%. Надо разбираться в чём ошибка, исправлять и добиваться 100% успешной транзакции. Что за дебильный типично колхозно-крестьянский принцип: запихнуть что хоть как-то пихается, а что не пихается запинать ногами, да и пох. Не знаю, если только ты там не для колхоза свои решения пилишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:55 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУВот тут 17310383 я выкладывал юнит тест реального джоба, который процессит сотрудников (это вин сервис, источником является odata сервис аксапты, приемником - отдельная БД под различное ПО). Как видишь отработка заняла 181 минуту, это примерно навскидку 0.4 секунды на одного сотрудника. Но это тестовая БД, к слову. На боевой БД сотрудников побольше, но и мощностя иные. 181мин!!!!!! ужас какой то ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:57 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
И еще, касательно оптимизации. Джобы выполняются асинхронно, разумеется. Если нужно оптимизировать процессинг, всегда можно его разнести на n джобов, что ускорит отработку. Либо как вариант процессить в n потоках. Как по мне, больше нравится второй вариант, он чище и грамотнее. Но подойдет и ленивый первый вариант, где нужно просто разделить выборки по какому-то искуственному критерию, как то даты, дни недели дат, чётность ID, группы, части top/skip и так далее. Оптимизация бесконечна :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:58 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
ViPRos181мин!!!!!! ужас какой то Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»! Даже не так. НЕ РЕАЛЬНЫЙ! Всякое гугло сосёт причмокивая ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 15:59 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttМСУЗачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь. Ну если такое у вас (или у вашего заказчика) является нормальным, тогда твоё решение ваще гуд! Объясни мне, почему такое решение может быть ненормальным? Вот Сахават что-то булькал-булькал и слился, так и не смог объяснить, накойхер (с) ему всё или ничего. hVosttНо у наших заказчиков требования к надёжности весьма высокие, а у нас требования к нашим разработкам очень высокие. У так тоже требования к надежности высокие, где ты тут увидел какие-то послабления? hVosttНедопустимы такие косяки, когда система в какой-то момент времени находится в неконсистентном состоянии. У меня тоже самое, неконсистентное состояние исключено. hVosttЕсли импорт, то либо загрузилось всё без ошибок, либо загрузка с косяками не нужна вообще, ни в каком виде, ни 80%, ни 99%. Надо разбираться в чём ошибка, исправлять и добиваться 100% успешной транзакции. Ситуации разные бывают, есть такие предметные области, в которой нужно именно 100% импорта. Например, рассмотрим загрузку месячных продаж. Бизнесу не нужно 90% продаж за день 01.02.2015, поэтому если именно 01.02 оказался "битым" днем, такая информация не играет роли. Но зачем отказывать всесь импорт, если 02.02.2015 полностью 100% прогрузился? О том и речь, что с неконсистентное бывает иногда неконсистентным, такой вот каламбур. hVosttЧто за дебильный типично колхозно-крестьянский принцип: запихнуть что хоть как-то пихается, а что не пихается запинать ногами, да и пох. Не знаю, если только ты там не для колхоза свои решения пилишь. Выше я объяснил. Люди работают с продажами за 02.02.2012, которые 100% прогрузились. Зачем их лишать этой возможности? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:07 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttViPRos181мин!!!!!! ужас какой то Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»! Даже не так. НЕ РЕАЛЬНЫЙ! Всякое гугло сосёт причмокивая 3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:09 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
Ситуации разные бывают, есть такие предметные области, в которых нужно именно 100% импорта. Например, рассмотрим загрузку месячных продаж. Бизнесу не нужно 90% продаж за день 01.02.2015, поэтому если именно 01.02 оказался "битым" днем, такая информация не играет роли. Но зачем откатывать весь импорт, если 02.02.2015 полностью 100% прогрузился? О том и речь, что неконсистентное бывает иногда консистентным, такой вот каламбур. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:11 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУhVosttпропущено... Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»! Даже не так. НЕ РЕАЛЬНЫЙ! Всякое гугло сосёт причмокивая 3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно Наоборот. Тебе просто надо наверное табличку Sarcasm показывать ))) По поводу твоего решения сейчас отвечу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:12 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttskyANAВот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :) hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт. Я всё понимаю, задачи разные, решения тоже разные. Горячие тур. предложения и, скажем, месячный отчёт о зарплате сотрудникам, вещи таки разные, не находишь?Хм, вообще не удачный пример. Ежемесячный отчёт. Почему синхронизация выпадает именно на этот день месяца, когда формируется отчёт? Ну и злющий бухгалтер и к тебе придёт, когда у него отчёт будет не верный, а ты ему скажешь, что свежие данные оказывается не залиты и остатки не посчитаны. И не подобрее от того, что узнает, что ему теперь ещё и ждать когда всё это произойдёт в одной транзакции, которая ещё и упадёт. Согласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:13 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :)А при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:15 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУОбъясни мне, почему такое решение может быть ненормальным? Вот Сахават что-то булькал-булькал и слился, так и не смог объяснить, накойхер (с) ему всё или ничего. Ну давай, по твоей информации: примерный срок выполнения: 3 часа в это время с базой данных активно взаимодействуют другие системы и пользователи ОК Заценим на временной линии: Код: c# 1. 2. 3. 4. 5.
В 15:40 в базе появилась актуальная инфа о Пете, в 17:38 о Васе. Т.е. инфа на момент начала загрузки была одна, а вот актуальность данных меняется с течением времени, и с 15:00 до 18:00 база данных вообще непонятно в каком состоянии, и как можно с этим работать, не понимаю? Это что нормально? Т.е. активные пользователи получают не просто не актуальную информацию (когда данные ещё не загрузились), а вообще непонятно что. Совершенно очевидно, что сводными отчётами в процессе загрузки можно только зад подтереть. Если бы обеспечивалась транзакционность, то хотябы состояние базы было бы актуально на определённый момент (до загрузки или после), а не черти что. В чём великий смысл этого идиотизма, не понимаю. С другой стороны такое решение можно было бы ещё принять, если бы оно применялось по регламенту или применялись другие способы обеспечивания консистентности данных, раз уж ты так упираешься против транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:33 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
ViPRosМСУ, не ляля отчет о численности требует всехДелай отчёт по численности на той БД, где эти объекты хранятся. Репликация - зло! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:36 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAА при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются. Какие-то странные обходные манёвры, так и не понятно ради чего эти пляски с бубном. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:37 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
МСУhVosttпропущено... Да, вот это я понимаю, «РЕАЛЬНЫЙ МАССИВ ДАННЫХ»! Даже не так. НЕ РЕАЛЬНЫЙ! Всякое гугло сосёт причмокивая 3 часа - это долго? Ребята, шли бы вы кур пасти, серьёзно мусь, покажи другие весчи, посмеемся немного, а то работа надоела совсем ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:38 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAЕжемесячный отчёт. Почему синхронизация выпадает именно на этот день месяца, когда формируется отчёт? Потому что сказано из условий МСУ, с БД работают во время импорта данных со всего земного шарика. Так что такая вероятность в таких условиях не исключена. Я понимаю, блокировки это неприятно, и с ними надо бороться, но нарушение единой целостности и актуальности это гораздо больший косяк. Не вижу причин на 30К записей не использовать транзакцию. Если записей миллионы, то нужны другие подходы и регламенты. Но простая пакетная загрузка во время активной работы пользователей тоже не катит нифига! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:40 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttТ.е. инфа на момент начала загрузки была одна, а вот актуальность данных меняется с течением времени, и с 15:00 до 18:00 база данных вообще непонятно в каком состоянии, и как можно с этим работать, не понимаю?У "сотрудник" есть поле "дата/время синхронизации". Вполне понятно в каком состоянии. hVosttЭто что нормально? Т.е. активные пользователи получают не просто не актуальную информацию (когда данные ещё не загрузились), а вообще непонятно что. Совершенно очевидно, что сводными отчётами в процессе загрузки можно только зад подтереть. Если бы обеспечивалась транзакционность, то хотябы состояние базы было бы актуально на определённый момент (до загрузки или после), а не черти что. В чём великий смысл этого идиотизма, не понимаю. С другой стороны такое решение можно было бы ещё принять, если бы оно применялось по регламенту или применялись другие способы обеспечивания консистентности данных, раз уж ты так упираешься против транзакций.Все эти проблемы решаются отказом от репликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:41 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAИ не подобрее от того, что узнает, что ему теперь ещё и ждать когда всё это произойдёт в одной транзакции, которая ещё и упадёт. О... о задержке он узнает сразу, так как это блокировка. Это конечно проблема. Но ещё большая проблема, если отчёт сдан, подписан, а он писец вообще ни о чём. ВОни будет не только от бухгалтера, но и от руководства, а МСУ будет им рекомендациями от майкрософта тыкать в нос ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:42 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttskyANAА при желании сформировать отчёт по готовому уже отделу, не дожидаясь того, как остальные обработаются. Какие-то странные обходные манёвры, так и не понятно ради чего эти пляски с бубном.Обходные манёвры чего, незапланированного выходного у бухгалтера? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:42 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :) Самое гуманное, это обеспечить неблокирующую транзакционность, а не прыгать в припляску с бубном ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:42 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttskyANAИ не подобрее от того, что узнает, что ему теперь ещё и ждать когда всё это произойдёт в одной транзакции, которая ещё и упадёт. О... о задержке он узнает сразу, так как это блокировка. Это конечно проблема. Но ещё большая проблема, если отчёт сдан, подписан, а он писец вообще ни о чём. ВОни будет не только от бухгалтера, но и от руководства, а МСУ будет им рекомендациями от майкрософта тыкать в нос Ну говорил же, отключить некоторые отчёты на время синхронизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:43 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
hVosttskyANAСогласись, что будет гуманнее, если он будет видеть прогресс и в случае чего сможет возобновить процесс с нужного ему места :) Самое гуманное, это обеспечить неблокирующую транзакционность, а не прыгать в припляску с бубном )Хм, а я о чём? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:43 |
|
EF: Как вы делаете пакетные операции?
|
|||
---|---|---|---|
#18+
skyANAОбходные манёвры чего, незапланированного выходного у бухгалтера? :) А в банковской системе, где обеспечение транзакций превыше всего, конечно вообще домой никогда не ходят. Спят прям на рабочем месте. И едят там же. И детей делают там. Там же повсюду транзакции, прям настоящий транзакционный АД ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2015, 16:44 |
|
|
start [/forum/topic.php?fid=17&msg=38889719&tid=1349618]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 323ms |
0 / 0 |