zoukankan      html  css  js  c++  java
  • 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]

  • 相关阅读:
    第三章
    第二章
    第一章
    第九章 硬件抽象层:HAL
    第十章 嵌入式Linux的调试技术
    第八章 让开发板发出声音:蜂鸣器驱动
    第七章
    第六章
    第五章总结
    第四章 源代码的下载和编译
  • 原文地址:https://www.cnblogs.com/lzpong/p/5832636.html
Copyright © 2011-2022 走看看