胡威的技术博客

不积跬步,无以至千里;不积小流,无以成江海!

oracle job执行时间往后延迟分析

问题描述:job的执行时间往后推迟很长时间,导致查询的数据不再时间范围内。
原因分析:
原因一:job执行时间间隔没有加trunc截取精度,而是直接使用sysdate+1/(24*60),由于job启动需要时间或扫描精度,导致下次执行时间用的标准时间已经不是启动JOB的时间,而是延迟几秒,执行一次就延迟几秒,执行次数多了延迟就长了
原因二:由于job执行的存储过程异常,导致job执行失败,查询select * from dba_jobs的failures字段加1,同时下次执行时间为本次执行时间+2分钟,如果再次失败,由下次执行的时间为上次开始执行时间+4 , 再次失败则+8,2的阶乘,以此类推,直到失败16次后,job就broken了,不再尝试执行。执行成功后,failures字段清0
问题处理:
原因一处理:job的执行时间间隔加trunc函数,trunc(sysdate,'hh24')+3/24
原因二处理:查看执行的失败存过,处理后,重新编译
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013050593/article/details/53080566
文章标签: job oracle
上一篇java.sql.SQLException: An attempt by a client to checkout a Connection has timed out
下一篇pl/dql 记录被另一个用户锁住的解决方法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭