oracle 排程程式學習

2021-06-01 05:58:14 字數 1466 閱讀 6130

oracle中scheduler的管理主要是通過dbms_scheduler來執行。

開始前的工作:

建立乙個使用者:create user sched identified by oracle;

grant create session to sched;

grant scheduler_admin to sched;

使用使用者hr登入資料庫執行下面操作:

create table sched_test(dt  date,str  varchar2(32));

create or replace procedure p_scheduler_test

isbegin

insert into hr.sched_test values(sysdate,'scheduler job test!');

commit;

end;/

把儲存過程p_scheduler_test 執行許可權賦予使用者sched

grant execute on p_scheduler_test to sched;

建立乙個jobs

begin

dbms_scheduler.create_job (

job_name           =>  'insert_sched_test',

job_type           =>  'stored_procedure',

job_action         =>  'hr.p_scheduler_test',      //這裡必須加上使用者模式的限制

start_date         =>  sysdate,

repeat_interval    =>  'freq=minutely;interval=1');

end; /

可以通過表user_scheduler_jobs檢視作業屬性,

檢視scheduler管理的job,可以通過user_scheduler_job_log和user_scheduler_job_run_details兩個檢視中查詢。

執行命令:exec dbms_scheduler.enable('insert_sched_test');  使作業生效

執行命令:exec dbms_scheduler.disable('insert_sched_test'); 使作業失效

執行命令:exec dbms_scheduler.set_attribute('job_name','job_attribute','new_value'); 更改作業相關屬性。

手工執行作業:exec dbms_scheduler.run_job('job_name');

job、program和schedule的關係

program:指定要做的具體內容,也就是做什麼

schedule:指定作業執行的時間和頻率,也就是怎麼做

job:指定要執行作業,就是做

oracle學習筆記之排程任務

scheduler 排程的學習 建立乙個表,除錯任務將每隔 30 秒向表內插入時間 create table schedule test timemod date select from schedule test order by timemod truncate table schedule t...

I O排程程式

如果簡單地以核心產生請求的次序直接將請求發向塊裝置的話,效能肯定讓人難以接受。磁碟定址是整個計算機中最慢的操作之一,每一次定址 定位硬碟磁頭到特定塊上的某個位置 需要花費不少時間。所以盡量縮短定址時間無疑是提高系統效能的關鍵。為了優化定址操作,核心既不會簡單的按請求接收次序,也不會立即將其提交給磁碟...

I O排程程式

如果簡單地以核心產生請求的次序直接將請求發向塊裝置的話,效能肯定讓人難以接受。磁碟定址是整個計算機中最慢的操作之一,每一次定址 定位硬碟磁頭到特定塊上的某個位置 需要花費不少時間。所以盡量縮短定址時間無疑是提高系統效能的關鍵。為了優化定址操作,核心既不會簡單的按請求接收次序,也不會立即將其提交給磁碟...