DBMS_SCHEDULER是Oracle 10G中新增的一个包,与老版本的DBMS_JOB包相比,DBMS_SCHEDULER有很多新特性,比如说,更容易规范开始时间和间隔时间,也能在 PL/SQL上指定计划执行操作系统命令。其中DBMS_SCHEDULER新特点中最好的一个是,它与资源管理器紧密结合起来了。
资源管理器是Oracle的一部分,它允许分割资源,例如,它可以分割CPU时间,在各种会话之间登陆Oracle。会话可以被分配到一个用户资源组,然后资源计划在用户资源组之间对可用资源进行分配。
DBMS_SCHEDULER有两个特点与资源管理器有密切的联系,它们是:作业类和计划窗口。
作业类
作业类是计划作业的一种。可以将多个作业指派给同一个作业类,但是每个作业每次只能指派给一个作业类。作业类其中一个属性是,它能包含类中与所有作业相联系的用户资源组的名称。这就意味着,以前在作业类中的作业在得到资源后要分配给指定的用户资源组,但现在不需要了。
举个例子来说,你创建一个名为BATCH_REPORTS的作业类,然后将它与名为 REPORTS_CONSUMER_GROUP的用户资源组建立联系。当你新建一个report作业时,仅仅是指派给了BATCH_REPORTS作业类,它将作为REPORTS_CONSUMER_GROUP的一个成员来运行。
计划窗口
计划窗口就是预定义时间周期,它有名称,开始时间和持续时间。计划窗口在它开始时间到达的时候“打开”,在它的持续时间到达的时候“关闭”。计划窗口将资源计划作为它的一个属性:当这个窗口打开的时候,在该窗口中,Oracle将当前资源计划自动切换到开始使用指定的资源。
继续先前那个例子,如果你有两个资源计划,名称分别为DAY_PLAN和NIGHT_PLAN,这两个计划窗口在它们之间自动切换。DAY_WINDOW窗口在6:00 A.M启动,然后激活DAY_PLAN计划,NIGHT_WINDOW窗口在10:00 P.M启动,然后激活NIGHT_PLAN计划。DAY_PLAN限制REPORTS_CONSUMER_GROUP的成员不能多于可用CPU资源的百分之二十五,允许交互用户优先选择;NIGHT_PLAN却不是这个比例,它允许report作业占用CPU资源的百分之七十五。
阅读(1358) | 评论(0) | 转发(0) |