job每5秒执行一次
大概逻辑是:由一个表中查询数据,做些业务判断,放入另一个表如果查询的数据过多,逐条处理数据的操作没有在5秒内完成
那么下次执行会在什么时间开始,
因为对oracle的job了解不多,不明白内部的工作机制
请高人给讲解下

解决方案 »

  1.   

    job本次运行时就计算了下次运行时间.如果本次运行时间较短,执行完毕时未到下次执行时间,则等待至下次执行时间执行.如果本次执行时间较长,执行完毕时已经过了下次执行时间.则job立刻执行,执行前计算下下次执行时间.
      

  2.   

    楼主问的问题是job里关于interval时间的关键,好像我上次还在哪里看到了篇关于job中关于下一个执行时间点interval的详细分析与解说,
    上面大家都说的对了,本次开始执行的时间到本次执行结束,如果超过五分钟了,则在本次执行结束后立即执行下一次;如果不到五分钟,则下次执行的时间是本次开始执行的时间加五分钟后再执行的。我看看是在哪里看到这篇文章,到时给你看看学习下。
      

  3.   

    都结贴了,没关系,我找到了,是一本杂志上介绍的:csdn oracle杂志
    Oracle计划作业(JOB)的探讨 
    本文作者:kamus([email protected])
    本文可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
    http://blog.csdn.net/kamus/archive/2004/12/02/201377.aspx
    摘要:
    本文通过实验和事件跟踪来分析Oracle Job执行过程中修改下次执行时间的机制,JOB执行错误以后的尝试执行间隔以及Oracle作业的其它相关方面。
    问题的提出
    有些人问,Oracle的JOB在设定完next_date和interval之后,到底是什么时候决定下一次运行时间的。可以归纳成以下几个问题。
    假设我们的JOB设定第一次运行的时间是12:00,运行的间隔是1小时,JOB运行需要耗时30分钟,那么第二次运行是在13:00还是13:30?
    如果是在13:00那是不是说明只要JOB一开始运行,next_date就被重新计算了?
    JOB的下一次运行会受到上一次运行时间的影响吗?如果受到影响,如何可以避免这个影响而让JOB在每天的指定时刻运行?
    假设我们的JOB设定第一次运行的时间是12:00,运行的间隔是30分钟,JOB运行需要耗时1小时,那么第二次运行是在12:30还是13:00还是根本就会报错?
    对于一个执行错误的JOB,oracle是否会尝试继续执行,如果会尝试继续执行那么隔多长时间尝试一次,总共尝试多少次以后会放弃?
    Oracle的作业是不是只能调用存储过程,如果我们想在Oracle内部管理操作系统级别命令(比如一个shell脚本)的计划任务可以实现吗?
    本文通过一些实验和跟踪来解释上面的所有问题。
    .....
    .....