高级调度器概念:作业优先级与窗口管理
1. 作业优先级设置
在同一个作业类中,如果有多个作业,我们可以使用 SET_ATTRIBUTE
调用为它们设置优先级。示例代码如下:
dbms_scheduler.set_attribute(
name=>'reports_job',
attribute=>'job_priority',
value=>2);
当同一类中的多个作业被安排在同一时间执行时,作业优先级将决定作业协调器进程选择执行这些作业的顺序。作业优先级的范围是 1 到 5,其中 1 表示最高优先级,会最先被选择执行。所有作业的默认优先级是 3。
例如,当作业类的消费者组的活动会话池小于作业数量时,优先级设置就显得尤为重要。高优先级的作业将首先运行,其他作业则会排队等待。
2. 日志级别控制
作业类可以通过三种选项来控制日志记录级别:
- DBMS_SCHEDULER.LOGGING_OFF
:该类中的任何作业都不会进行日志记录。
- DBMS_SCHEDULER.LOGGING_RUNS
:会记录该类中每个作业的每次运行信息,包括运行开始时间和作业是否成功运行。
- DBMS_SCHEDULER.LOGGING_FULL
:除了记录作业运行信息外,还会记录该类的管理操作,如创建新作业。
要查看日志信息,可以查询 DBA