关于Oracle定时器执行问题的疑问

img

最近总出现定时器运行异常的情况。在查看定时器的时候发现很多定时器的total_time大的过分。所以引发了我的猜想,希望有专业人士给解惑一下。

首先,定时器中,total_time是否可以认定为运行这个定时器的时间,波动范围多少。
第二,如果一个定时器每天零点执行,而执行这个定时器所用的时间大于了一天,会不会引起死锁等数据库问题。
第三,Oracle有没有在底层上做什么处理,针对这种运行时间大于定时器间隔的问题。

如果你用的是JOB也就是DBA_JOBS或USER_JOBS或者ALL_JOBS查到的的,那么这个total_time指的是累计执行的总时间。并不是指一次的运行时间。如果你想获取上次的开始时间可以查该表LAST_DATE,LAST_SEC,你想知道结束时间,那就自己记录吧。

JOB是有可替换的组件的,虽然简单,但是很多信息未被记录,并不推荐使用,建议你用SCHEDULER来替代JOB,它会更加详细的记录各种信息。