完成执行的作业从 dba_jobs 中删除需要多长时间?

Posted

技术标签:

【中文标题】完成执行的作业从 dba_jobs 中删除需要多长时间?【英文标题】:How long until a job that has finished executing gets removed from dba_jobs? 【发布时间】:2018-06-29 07:28:16 【问题描述】:

如果我通过 dbms_job.submit 提交作业并提交,那么它会一直运行直到完成。我可以在 dba_jobs 视图上查看多长时间?是什么决定了这个时间?

【问题讨论】:

认为它会一直存在,直到您的架构存在。此外,您应该考虑使用 DBMS_SCHEDULER 而不是 DBMS_JOB,后者现在已被弃用。 【参考方案1】:

正如@Kaushik 所说,DBMS_JOB 包已被DBMS_SCHEDULER 包source 取代。 它们具有作业名称而不是数字、适当的时间调度语言以及许多用于监控执行的视图等。

DBMS_SCHEDULER.CREATE_JOB 过程甚至为您的问题提供了一个名为 auto_drop 的专用参数:

如果是TRUE,则此标志会导致作业在完成后自动放弃。 source

但是你要求DBMS_JOB,我很确定这个工作没有被删除。我刚刚验证了当用户/模式被删除时它被删除了。

作为管理员:

CREATE USER a IDENTIFIED BY a;
GRANT CREATE SESSION, CREATE JOB TO a;

作为用户 a:

DECLARE
  my_job number;
BEGIN
  DBMS_JOB.SUBMIT(job => my_job, 
    what => 'BEGIN DBMS_STATS.GATHER_SCHEMA_STATS(NULL); END;',
    next_date=>sysdate+(1/24/60),
    interval=>'sysdate+(1/24/60)');
  COMMIT;
end;
/   

作为管理员:

SELECT * FROM DBA_JOBS WHERE schema_user='A';
JOB LOG_USER LAST_DATE           NEXT_DATE ...
25  A        29.06.2018 13:46:25 29.06.2018 13:47:25

DROP USER A;
User A dropped.

SELECT * FROM DBA_JOBS WHERE schema_user='A';
no rows returned

【讨论】:

谢谢,您有验证来源吗?

以上是关于完成执行的作业从 dba_jobs 中删除需要多长时间?的主要内容,如果未能解决你的问题,请参考以下文章

执行paypal订单需要多长时间?

[转]51430stm32周期和执行一条语句需要多长时间的问题

SZTUOJ 1016.zjb学长想要玩!

mapreduce 作业完成后,_temporary 目录不会从输出位置删除

blob 在 Azure 存储帐户中保留多长时间?

mssql数据库变为单用户模式要执行多长时间。 查询执行了一个小时了还在执行。