首页 > 代码库 > Oracle数据库Job的下次执行时间老是变动问题
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]
Oracle数据库Job的下次执行时间老是变动问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。