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