DBMS_JOB与DBMS_SCHEDULER

DBMS_JOB和DBMS_SCHEDULER有什么区别?     
已邀请:
来自其他论坛: 尽管dbms_job仍然存在于10g和11g中,但Oracle建议在10g及更高版本中使用dbms_scheduler。没有向dbms_job添加新功能,您很可能会很快遇到其局限性。 dbms_scheduler比dbms_job更强大,功能更全面,并包含dbms_job没有的以下功能: 记录作业运行(作业历史记录) 简单但功能强大的调度语法(类似但比cron语法更强大) 在操作系统上运行数据库之外的作业 不同类别的工作之间的资源管理 使用作业参数,包括将对象传递到存储过程 基于特权的作业安全模型 在工作中命名工作和评论 存储的,可重复使用的计划 10g第1版之后的版本中的功能包括: 作业单位之间的依赖关系(10gR2及以上) 基于金融日历和财政季度的调度(10gR2及以上) 收到活动时运行的基于事件的作业(10gR2及以上) 在远程机器上运行作业(11gR1及以上) 关于感兴趣的工作事件的电子邮件通知(10gR2及以上) 基于文件到达(10gR2及以上)开始工作     
需要注意的一个区别是,与DBMS_JOB不同,DBMS_SCHEDULER执行提交,这使得它不适合某些用途。对于更简单的要求,这也是相当麻烦的。虽然DBMS_JOB将不再被增强,但它不太可能不被支持,因为必须有数千个系统正在使用它并依赖于它的工作方式,包括不执行从中调用它的事务的隐式提交。 请参阅此问汤姆线程了解更多信息。     
下面列出了DBMS_SCHEDULER对cron的一些好处: •可以使作业的执行取决于另一个作业的完成 •强大的资源平衡和灵活的调度功能 •可以基于数据库事件运行作业 •无论操作系统如何,DBMS_SCHEDULER语法都相同 •可以使用数据字典运行状态报告 •如果在群集环境中工作,则无需担心为群集中的每个节点同步多个cron表 下面列出了使用cron的一些优点: •易于使用,简单,经过验证和真实 •几乎普遍适用于所有Linux / Unix机箱;在大多数情况下,无论Linux / Unix平台如何运行几乎完全相同(是的,存在细微差别) •数据库不可知;无论数据库供应商或数据库版本如何,它都独立于数据库运行并且工作方式相同 •确定数据库是否可用     

要回复问题请先登录注册