Oracle数据库Job的下次执行时间老是变动问题

job的 interval设置为 sysdate+1 结果好多客户的这个时间最后会变的乱起八糟, 

或是 导入 , 或是手动执行了等等, 还有自动会变的, 而且不少,  

觉得莫名其妙, ,

今天网上搜了下 , 终于明白了其中的原因

由于oracle的job的时间检查周期的差异性  和 job进程数量及job并发量的问题
以及 job失败等原因导致job延后执行成功  都会导致  下次job的起点时间的变化(sysdate发生了变化)

 

 

并且也找到了解决办法, 

比如,我要每天凌晨1点执行, interval就应该是:

trunc(SYSDATE)+1+1/24

表示 今天的凌晨一天一小时 ==>明天凌晨1点

原因:

SYSDATE会不稳定,但是不管是今天什么时候,trunc(sysdate) 返回的都是今天的 0点!!!!

so.... 只要job在当天完成都可以保证每天时间点基本一致!

 

如果要间隔半小时执行, interval就应该是:

TRUNC(sysdate,'HH24') + (trunc(to_char(sysdate,'mi')/30)+1)/(24*2)

 

[引用参考:http://www.itpub.net/thread-264556-1-1.html]

 

转载于:https://www.cnblogs.com/lzpong/p/5832636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值