|
![]() |
#1 |
Участник
|
Ну batchjobhistory это не особо нагруженная табличка. Из последних примеров - это проект аудита производительности и InventSum на 70млн записей большинство из которых закрыто и работающая 24*7 система.
Ну т.е. альтернатива это то что написал mazzy, останавливать систему, переливать данные. Но на практике такое довольно сложно сделать. С описанным подходом удаляло где-то полдня, нагрузку особо не давало и ничего не блокировало. Ну и получилось продолжить проект, решая уже другие проблемы ![]() |
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
Либо таки "periodic database cleanup", либо внезапно "70млн записей большинство из которых закрыто" ![]() |
|
![]() |
#3 |
Участник
|
Идея состояла в том, чтобы сделать что-то универальное. т.е. класс очистки состоит из пустого метода execute, переданной таблицы с параметрами и режима запуска.
что туда писать это дело разработчика. Ну т.е. хочешь удаление со всеми методами и delete actions, которое работает неделю - пишешь так, плюс в базом классе есть некоторые вспомогательные методы для логирования промежуточного прогресса. Согласись что смотреть на джоб который работает неделю не понимая что он делает и сполько осталось довольно сложно? Хочешь быстрый SQL - пишешь быстрый SQL, опять же некоторые хелперы есть Знаешь что уже есть стандартный класс, который "работает неплохо" и хочешь использовать его, используешь его. Требования раздельного удаления по компаниям я не видел, но даже если и будет - никто не мешает реализовать, структура очень базовая, поэтому и гибкая |
|
|
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (6). |
![]() |
#4 |
Модератор
|
Странно, мне казалось весь блог был про то насколько T-SQL быстрее архаичного X++, ну да ладно. Чем фреймворк отличается от batch job с множественными batch tasks - тоже решительно непонятно.
P.S. Заставить onhand cleanup / aggregation бодаться с параллельно работающим consistency check, это конечно мощный аргумент в пользу кастомного фреймворка - один сворачивает, другой разворачивает, работа кипит - красота. А склад там параллельно не закрывался и реиндексация не шла? Ну, чтобы уж наверняка ![]() Цитата:
Требования раздельного удаления по компаниям я не видел, но даже если и будет - никто не мешает реализовать, структура очень базовая, поэтому и гибкая
![]()
__________________
-ТСЯ или -ТЬСЯ ? Последний раз редактировалось Vadik; 12.03.2021 в 12:41. |
|
![]() |
#5 |
Участник
|
Цитата:
Как делаете очистку SalesParm..? Она точно блокирует текущие обработки, т.е. кто-то должен озадачится запуском когда не обрабатываются заказы Я не работал с разными регионами в одной системе, у них что разные параметры для заданий очистки в зав-ти от компании? Т.е. вот так это выглядит в предложенном решении, одна форма настройки на все, один batch job на все, статистика в разрезе по задаче Т.е. основная задача которая решается - реализовать периодическую очистку и убедиться что она работает как ожидается, не входит в конфликт с существующими процессами в системе Последний раз редактировалось trud; 12.03.2021 в 13:53. |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
![]() |
#6 |
Модератор
|
Цитата:
Цитата:
А как вы делаете очистку InventSum. Там 3 джоба(агрегирование, wms, on-hadn), которые нужно запускать в каждой компании. Ну т.е. если много компаний запускаете много джобов? в одно и тоже время или разбиваете?
![]() Цитата:
Как делаете очистку SalesParm..? Она точно блокирует текущие обработки, т.е. кто-то должен озадачится запуском когда не обрабатываются заказы
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#7 |
Участник
|
Цитата:
Это мне видится огромным объемом админ работы, плюс кто-то должен на этим постоянно следить. Или просто решили делать так? И о каких объемах тут идет речь, сколько строк удаляется и как долго? Ну т.е. основная идея, это создать функциональность где не надо будет заниматься такими настройками - для этого как раз понадобится реализация удаления через SQL, это практически не дает нагрузки, плюс ничего не блокирует (но для 2012 реализация конечно будет сложноватой) |
|
![]() |
#8 |
Модератор
|
Цитата:
__________________
-ТСЯ или -ТЬСЯ ? Последний раз редактировалось Vadik; 11.03.2021 в 15:57. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#9 |
Участник
|
Цитата:
Ну т.е. что удобнее - 20 джобов(которые бы нежелательно запускать вместе) или один? По факту люди кучу времени тратят на эту настройку если число компаний велико.или вообще забивают на это По поводу смотреть на лог - он позволит быстро диагностировать проблемы. Из недавнего - клиент пожаловался что очистка InventSum(стандартная) не работает плюс стопит всю систему. Лог выявил что кол-во удаленных записей было больше 2 миллионов(что явно ненормально, это был не первый запуск). Стандартная процедура на таких объемах довольно сильно притормаживает систему, до состояния пользователи звонят и жалуются(это по поводу вашего коментария что неплохо работает) Оказалось что кто-то запустил проверку целостности системы, которая как оказалось пересоздает все удаленные InventSum. Была дана рекомендация этого не делать Ну т.е. без лога это было бы сложно понять, логи наше все ![]() |
|
![]() |
#10 |
Участник
|
Цитата:
почти на всех проектах, где используют компании, подобное видел. кроме очистки бывают и другие задания, которые надо запускать подобным образом. на мой взгляд, нет никаких причин, чтобы очистка сама занималась компаниями в обход стандартных механизмов. |
|
|
|