Orcal中执行定时任务

1、先写了一个任务 prodcedures

create or replace procedure prc_job  is
     begin
      merge into eas.T_DUC_BreedingContract v1 using (SELECT  TRUNC(SYSDATE)-TRUNC(FBEGINDATE)   age, FID FROM

    eas.T_DUC_BreedingContract ) v2 on (v1.fid =v2.fid   and      ( v1.CFACTUALEXECUTQTY  is null   or  v1.CFACTUALEXECUTQTY=0 ) )   when matched then   update set  v1.CFDAYAGE=v2.age ;
     commit ;
 end prc_job;

2、再写一个定时任务

begin
  sys.dbms_job.submit(job => :job,
                      what => 'prc_job;',
                      next_date => to_date('20-12-2018 09:03:22', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'sysdate+1/(24*60)');
  commit;
end;
/

3、查看定时任务

select t.* from user_jobs t

4、执行定时任务

begin
 dbms_job.run(23);
end;

注意事项: 如果是oracle 中的定时任务为能按时执行记得查看参数

 

select sid from dba_jobs_running;


 select name,value from v$parameter where name ='job_queue_processes';    
 
 
alter system set job_queue_processes=6

4、小结
a、job_queue_processes参数决定了job作业能够使用的总进程数。
b、当该参数为0值,任何job都不会被执行,建议合理设置该值且至少大于1。
c、对于job运行时间也应该尽量合理的设置间隔以及启动时间。
d、如果同一时间内运行的Job数很多,过小的参数值导致job不得不进行等待。而过大的参数值则消耗更多的系统资源。
f、对于存在依赖关系的job,尽可能将其进行合并到一个job中,如使用chain等。

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值