Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何创建一个;“单身人士”;oracle中的计划作业?_Sql_Oracle_Plsql_Dbms Scheduler_Dbms Job - Fatal编程技术网

Sql 如何创建一个;“单身人士”;oracle中的计划作业?

Sql 如何创建一个;“单身人士”;oracle中的计划作业?,sql,oracle,plsql,dbms-scheduler,dbms-job,Sql,Oracle,Plsql,Dbms Scheduler,Dbms Job,我可能只是缺少了一些词汇来了解如何做到这一点: 计划每5分钟定期运行一次的作业,但要跟踪它从未同时运行过两个实例,即,如果之前的运行时间超过5分钟,下一个实例将被推迟或跳过 实现这一点最简单/最优雅的方法是什么?DBMS\u JOB会解决这个问题。只需使用它。来自Oracle 10g管理员指南: 作业包已被包取代。特别是,如果您正在管理作业以管理系统负载,则应考虑通过禁用用户的包执行特权来禁用DMSMyJOBE。“ DBMS_调度器是Oracle现在推荐的执行此操作的方法。它的一个优点是,如果使

我可能只是缺少了一些词汇来了解如何做到这一点:

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


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

DBMS\u JOB
会解决这个问题。只需使用它。

来自Oracle 10g管理员指南:

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


DBMS_调度器是Oracle现在推荐的执行此操作的方法。它的一个优点是,如果使用它,您可以通过Enterprise Manager/Grid Control来管理作业。

dbms\u调度程序在dbms\u作业之上的另一个优点是,您可以更好地控制负载、资源使用,还可以在数据库外部运行作业

嗯,,
Ronald.

如果由于某种原因dbms_作业或dbms_调度程序无法为您工作,您也可以使用
dbms_应用程序_信息。SET_应用程序_信息
设置作业的模块名,您可以查询v$session以查看当前有多少个会话正在执行该模块


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

+1表示不重新发明车轮。另外,如果需要确定上次/下次运行信息,请参阅DBA_作业和DBA_作业运行视图。非常感谢您的回复。它是否也能避免同时运行两个作业实例?如果是,我应该使用哪个选项?这是我还没有发现的…IIRC,dbms_作业一次只运行一个(一个作业不会运行两个实例)。Dbms_调度程序允许在作业失败时更灵活地执行操作。感谢您的回复,我认为Dbms_作业和dmbs_调度程序都适合我,但不知何故,我似乎不够聪明,无法找出如何避免两个作业重叠…顺便说一句:这是一个存储过程,是的,您不必担心作业重叠。两种调度机制一次只运行一个作业实例。-1抱歉,这根本不起作用-在查询v$session,然后调用SET_APPLICATION_INFO这段时间内,没有任何东西可以阻止另一个进程执行相同的操作-您仍然会使用相同的应用程序_INFO结束多个会话。如果dbms_作业/dbms_调度程序没有切断它,dbms_锁确实提供了一种创建锁的方法。是的,当存在大量并发时,这不会很好地工作,但是如果如提问者所述,作业每5分钟调用一次,我不认为这是一个问题。对于简单的情况,Tom Kyte仍然更喜欢dbms_作业。看见