У меня есть таблица действий, которая получает все события таблицы системы. Такие события, как новые заказы, вставка/удаление во всех системных таблицах, будут вставлены в эту таблицу. Таким образом, количество событий в секунду действительно огромно для таблицы Activity.
Теперь я хочу обрабатывать входящие события на основе бизнес-логики в зависимости от таблицы, ответственной за инициирование события. Каждая таблица может иметь различную процедуру обработки.
Я использовал ту же ссылку Распараллеливание вызовов в PL/SQL
В качестве решения я создал несколько заданий dbms_scheduler
, которые будут вызываться одновременно. Все эти задания (JOB1, JOB2--- - -JOB10
) будут иметь ту же процедуру (ProcForAll_Processing
), что и JOB_ACTION
, для обеспечения параллельной обработки.
begin
dbms_scheduler.run_job('JOB1',false);
dbms_scheduler.run_job('JOB2',false);
end;
ProcForAll_Processing
: эта процедура, в свою очередь, вызовет 6 других процедур Proc1,proc2,proc3 --- -- - -- - Proc6
в последовательном порядке. Я хочу добиться параллельной обработки и для них.
P.S: Мы не можем создавать дополнительные задания для обеспечения параллельной обработки в процедуре ProcForAll_Processing
, так как это может привести к потреблению дополнительных ресурсов, а также DBA не дает согласия на создание дополнительных заданий. Кроме того, я не могу использовать dbms_parallel_execute
для параллельной обработки.
Пожалуйста, помогите мне, так как я действительно застрял, чтобы сделать это