作业管理实验 job_queue_processes参数介绍 job_queue_processes参数决定了job作业能够使用的总进程数。 当该参数为0值,任何job都不会被执行,建议合理设置该值且至少大于1。 对于job运行时间也应该尽量合理的设置间隔以及启动时间。 如果同一时间内运行的Job数很多,过小的参数值导致job不得不进行等待。而过大的参数值则消耗更多的系统资源。 对于存在依赖关系的job,尽可能将其进行合并到一个job中,如使用chain等。 alter system set job_queue_processes=100; 1.普通用户创建作业 1.1建一张表 22:45:17 lhm@ orcl2>create table auto_open_paytype_date (datetime date,type number); 1.2 建一个存储过程 create or replace procedure auto_open_paytype__job_proc as BEGIN update tablename_666 set isopen=1 where id=666; insert into auto_open_paytype_date values (sysdate,'1'); END; / Warning: Procedure created with compilation error 22:48:24 lhm@ orcl2>show error Errors for PROCEDURE AUTO_OPEN_PAYTYPE__JOB_PROC: LINE/COL ERROR -------- ----------------------------------------------------------------- 4/1 PL/SQL: SQL Statement ignored 4/8 PL/SQL: ORA-00942: table or view does not exist show error --查看报错原因 select * from user_source; --查看存储过程的信息 建立关联表 create table tablename_666 (id number); alter PROCEDURE AUTO_OPEN_PAYTYPE__JOB_PROC compile; #重新编译过程 1.3创建作业 declare auto_open_paytype_job number; begin dbms_job.submit(auto_open_paytype_job,'auto_open_paytype__job_proc;',to_date('2021-07-27 13:00:00','yyyy-MM-dd HH24:mi:ss'),'sysdate+1'); commit; end; / dba 查看作业 col WHAT for a30 col INTERVAL for a50 select job,what,log_user,priv_user,schema_user,last_date,last_sec,this_date,this_sec,next_date,next_sec,total_time,broken,interval,failures from dba_jobs; select * from user_jobs; select * from dba_jobs_running; #注意只有在作业运行的时候才可以查到状态,没有作业运行就会返回空行。 SELECT job FROM USER_JOBS; #JOB字段就是作业的ID. 手动执行作业 >begin dbms_job.run(3); --3就是作业ID commit; end; / SELECT job FROM USER_JOBS; #JOB字段就是作业的ID. 将运行的作业置为失效状态: EXEC DBMS_JOB.BROKEN(3,FALSE); broken中的第二个参数用于设置作业的状态,如果为true就表示将把作业状态置为失效的,作业不再运行,需要使用run强制运行;如果为false表示只失效本次执行,作业的状态仍然是有效,到作业的下一次运行时间时作业仍然会自动运行。 exec dbms_job.broken(3,true); 注意:停止作业需要使用作业的所有者执行,sys用户执行就会报错。 ERROR at line 1: ORA-23421: job number 3 is not a job in the job queue ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.DBMS_IJOB", line 781 ORA-06512: at "SYS.DBMS_JOB", line 254 ORA-06512: at line 1 将失效的作业删除: exec dbms_job.remove(25); 注意:必须要将有效的作业失败后再删除,否则有可能作业正在运行是无法删除的。
oracle 作业管理
来源:这里教程网
时间:2026-03-03 16:51:21
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- SQL的reload以及Invalidations
SQL的reload以及Invalidations
26-03-03 - Oracle学习、进阶资料合集(含教程、笔记、题库下载与学习方法分享)
Oracle学习、进阶资料合集(含教程、笔记、题库下载与学习方法分享)
26-03-03 - Cursor Cache Hit Ratio超过100%
Cursor Cache Hit Ratio超过100%
26-03-03 - 卫生系统中招勒索病毒的应对措施和紧急恢复办法
卫生系统中招勒索病毒的应对措施和紧急恢复办法
26-03-03 - 影响抖音视频上热门最重要的因素是什么?有什么小技巧?
影响抖音视频上热门最重要的因素是什么?有什么小技巧?
26-03-03 - 面板给不了京东方新故事
面板给不了京东方新故事
26-03-03 - 不用投抖加,免费也能上热门推荐?3个技巧悄悄告诉你
不用投抖加,免费也能上热门推荐?3个技巧悄悄告诉你
26-03-03 - 阿里、微盟、碧桂园,抢占智慧餐饮高地
阿里、微盟、碧桂园,抢占智慧餐饮高地
26-03-03 - 一夜爆火的鸿星尔克还差点什么?
一夜爆火的鸿星尔克还差点什么?
26-03-03 - Oracle:19c 新特性——Memoptimized Rowstore 简介
