在Oracle 12c中,作业(Job)和DBMS_SCHEDULER作业(DBMS_JOB)是两个不同的概念,具有不同的特点和用途。
作业(Job)是Oracle数据库中的一个陈旧功能,通常通过PL/SQL区块来使用,在Oracle 12c及以后的版本中,作业更多地用于退役和向后兼容性,因为现在有更高级的调度工具,比如DBMS_SCHEDULER。
DBMS_SCHEDULER作业是一种更现代的调度功能,有更灵活的配置选项和更强大的功能。它可以通过一组相关的调度器对象来对作业进行管理,使其可以在更细粒度的时间间隔内执行,同时还可以设置多个作业之间的依赖关系和优先级。
下面是一些DBMS_SCHEDULER相对于作业的优势:
使用DBMS_SCHEDULER,可以在同一数据库中调度多个节点和不同的任务;
DBMS_SCHEDULER作业可以指定更详细的属性,比如优先级,内存和CPU使用;
DBMS_SCHEDULER作业可以更精确地控制调度和错误处理;
DBMS_SCHEDULER作业可以被用于分区表的维护和清理。
总的来说,在Oracle 12c中,建议使用DBMS_SCHEDULER作业来管理数据库调度任务,因为它具有更高级的调度功能和更灵活的任务配置选项。