(11)使用Job Classes |
[君三思] 2009-9-8 |
六、使用Job ClassesJob Classes 相當(dāng)于創(chuàng)建了一個(gè)job組,DBA可以將那些具有相同特性的job,統(tǒng)統(tǒng)放到相同的Job Classes中,然后通過對(duì)Job Class應(yīng)用ORACLE中的"資源使用計(jì)劃"特性,就可以對(duì)這些job執(zhí)行過程中所需要的資源分配情況進(jìn)行管理。 1、 創(chuàng)建Job Classes使用DBMS_SCHEDULER包的CREATE_JOB_CLASS過程創(chuàng)建Job Classes,該過程支持的參數(shù)如下: JSSWEB> desc dbms_scheduler.create_job_class; Parameter Type Mode Default? ----------------------- -------------- ---- -------- JOB_CLASS_NAME VARCHAR2 IN RESOURCE_CONSUMER_GROUP VARCHAR2 IN Y SERVICE VARCHAR2 IN Y LOGGING_LEVEL BINARY_INTEGER IN Y LOG_HISTORY BINARY_INTEGER IN Y COMMENTS VARCHAR2 IN Y其中:
提示:啥是Resource Consumer Group 你可以將其理解成一個(gè)資源分配的方式,處于相同RCG組中的用戶、會(huì)話、或者對(duì)象共用一組資源,這組資源中可供分配的資源按照DBA指定的方式分配給RCG。如果設(shè)計(jì)合理,通過這種方式,可以更有效的利用服務(wù)器的資源。
上述各個(gè)參數(shù),除了LOG_CLASS_NAME參數(shù)為必選參外,其它均為可選參數(shù),例如: JSSWEB> EXEC DBMS_SCHEDULER.CREATE_JOB_CLASS(¨my_first_jc¨); PL/SQL procedure successfully completed查詢系統(tǒng)中已經(jīng)存在的Job Classes,可以通過DBA_SCHEDULER_JOB_CLASSES視圖(或ALL_SCHEDULER_JOB_CLASS視圖),例如: JSSWEB> select job_class_name,resource_consumer_group,service from dba_scheduler_job_classes; JOB_CLASS_NAME RESOURCE_CONSUMER_GROUP SERVICE ------------------------------ ------------------------------ ----------------------------- DEFAULT_JOB_CLASS AUTO_TASKS_JOB_CLASS AUTO_TASK_CONSUMER_GROUP MY_FIRST_JC當(dāng)創(chuàng)建Jobs時(shí),可以通過JOB_CLASS參數(shù)來指定job所在的Job Class,如果不指定的話,創(chuàng)建的job默認(rèn)屬于DEFAULT_JOB_CLASS。至于說如何查詢創(chuàng)建的jobs屬于哪個(gè)Job Class,還用說嗎,*_SCHEDULER_JOBS視圖中的JOB_CLASS列唄。 2、 管理Job ClassesDBMS_SCHEDULER.SET_ATTRIBUTE 過程大家應(yīng)當(dāng)還記的,前面的小節(jié)中演示中使用該過程,修改job的屬性,實(shí)際上SET_ATTRIBUTE也同樣可以用來修改Job Class的屬性,操作方法與修改job屬性完全相同,只不過作用函概的范圍更廣,修改Job Class后,該Job Class下屬的所有job屬性都會(huì)被級(jí)聯(lián)修改(當(dāng)前正運(yùn)行的不會(huì)立刻生效,將等到下次運(yùn)行時(shí)生效)。 例如:修改剛剛創(chuàng)建的MY_FIRST_JC的日志保存時(shí)間: JSSWEB> EXEC DBMS_SCHEDULER.SET_ATTRIBUTE(¨SYS.MY_FIRST_JC¨,¨LOG_HISTORY¨,¨30¨); PL/SQL procedure successfully completed.
3、 刪除Job ClassesDBMS_SCHEDULER 包提供了DROP_JOB_CLASS過程,用來刪除Job Classes。該過程調(diào)用非常簡單,例如,刪除剛剛創(chuàng)建的MY_FIRST_JC,執(zhí)行命令如下: JSSWEB> EXEC DBMS_SCHEDULER.DROP_JOB_CLASS(¨MY_FIRST_JC¨); PL/SQL procedure successfully completed.如果有多個(gè)Job Classes需要?jiǎng)h除,并不需要多次執(zhí)行DROP_JOB_CLASS,只需要在為該過程指定值時(shí),參數(shù)值間以逗號(hào)分隔即可。 |