作业VS Scheduler,Oracle 10G

kai*_*sun 2 oracle

是否有人可以严格地告诉我oracle中的工作(DBMS_JOB)和调度程序(DBMS_SCHEDULER)是什么?它的作用是什么?

问候.

ik_*_*elf 13

乍一看,它看起来像只有更人类可读的时间表,其他的名字dbms_scheduler,相比dbms_job.当看起来稍微好一些时,即使在Oracle 10gR1中也存在许多差异.目前我们在11gR2.每个版本dbms_scheduler都有更多的增强功能,dbms_job多年来一直保持静态.

差异

  • dbms_scheduler有日志记录
  • dbms_scheduler具有外部作业
  • dbms_scheduler有工作链
  • dbms_scheduler具有作业事件处理(可以引发事件并做出反应)
  • dbms_scheduler具有resource manager集成功能
  • dbms_scheduler具有人类可读的日历语法
  • dbms_scheduler可以在一个新日历中组合不同的日历

额外增加11g

  • dbms_scheduler具有远程外部作业
  • dbms_scheduler具有轻量级作业 - 在一个tx中生成许多低开销作业
  • dbms_scheduler可以在作业完成时发送邮件
  • dbms_scheduler作业可以有多个目标

dbms_job只能在当前数据库中运行pl/sql类型的作业.

我希望这(在完整列表中)有所帮助


fge*_*fge 5

两者都允许您安排在给定时间执行的作业.主要区别在于你如何指定它们,除此之外在实践中没有明显的区别.

DBMS_SCHEDULER还允许您设置您的客户计划间隔,而DBMS_JOB则不会.实际上,最重要的区别是DBMS_JOB已被弃用,因此在DBMS_SCHEDULER之前将不再支持DBMS_JOB.

  • 嗯,实践中有很多不同之处.大的是作业之间的依赖关系,与资源管理器的集成,以及更容易描述复杂的调度(而不仅仅是开始日期和时间间隔). (2认同)
  • 另外,一个是交易的,一个不是.换句话说,对回滚的一个调用的调用将不会向调度添加任何内容,而另一个使用匿名事务并且将继续调用事务提交或回滚.我不记得哪个是哪个,但我确定文档是这样做的:http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/toc.htm (2认同)