4

这可能只是我想知道如何做到这一点的词汇:

计划每 5 分钟定期运行一次的作业,但要跟踪它永远不会同时运行两个实例,即如果先前的运行时间超过 5 分钟,则下一个实例将被推迟或跳过。

实现这一目标的最简单/最优雅的方法是什么?

4

4 回答 4

4

来自 Oracle 10g 管理员指南:

“DBMS_JOB 包已被DBMS_SCHEDULER包取代。特别是,如果您正在管理作业以管理系统负载,则应考虑通过撤销用户的包执行权限来禁用 DBMS_JOB。”

DBMS_SCHEDULER 是 Oracle 现在推荐的执行此操作的方法。它的一个优点是,如果您使用它,您可以通过企业管理器/网格控制来管理您的工作。

于 2009-06-25T14:51:45.067 回答
3

DBMS_JOB照顾那个。就用它吧。

于 2009-06-25T12:04:13.330 回答
1

dbms_scheduler 在 dbms_job 之上的另一个优势是您可以更好地控制负载、资源使用,并且您还可以在数据库外部运行作业。

hth,罗纳德。

于 2009-06-25T15:17:36.497 回答
-1

如果由于某种原因 dbms_job 或 dbms_scheduler 对您不起作用,您还可以使用DBMS_APPLICATION_INFO.SET_APPLICATION_INFO设置作业的模块名称,您可以查询 v$session 以查看当前有多少会话正在执行该模块。

这是什么类型的工作?PL/SQL 存储过程?

于 2009-06-25T15:41:03.453 回答