久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    全面學(xué)習(xí)ORACLE Scheduler特性(12)使用Window和Window Group

     爪一o_0一斗 2012-11-07

    (12)使用Window和Window Group

    七、使用Windows

      此Windows非彼Windows,通常說的Windows是指蓋首富的操作系統(tǒng),而此處所說的Windows,是指SCHEDULER特性中的一個子項。在SCHEDULER中,WINDOW對應(yīng)的是一個時間窗口的概念。

      我們知道普通的jobs是沒有運(yùn)行時間管理地概念的,就是說一個job啟動之后,用戶只能被動地等待其執(zhí)行,一直到其執(zhí)行地任務(wù)完成(或DBA手動kill對應(yīng)進(jìn)程),在此期間,執(zhí)行的job將與其它活動的進(jìn)程共同競爭當(dāng)前系統(tǒng)中的資源。對于大型數(shù)據(jù)庫系統(tǒng),系統(tǒng)資源那可是相當(dāng)寶貴的無形資產(chǎn)哪,企能誰說用就用、想什么時候用就什么時候用,沒點兒計劃沒點兒節(jié)制這還了得。你還別說,在9i之前,還真就是這么回事兒,誰想用就用,誰也管不了,其中表示最甚的就是job。你是否想起了Job Classes,沒錯定義Job Classes確實可以控制job能夠使用的資源,不過單單使用Job Classes并不能靈活的控制job在合適的時間使用適當(dāng)?shù)馁Y源。進(jìn)入10g之后,SCHEDULER中提供了WINDOW,事情終于有了緩解。

      WINDOW 可以指定一個時間窗口,在此期間,通過與Job Classes的搭配組合,能夠有效控制job執(zhí)行時支配(使用)的資源。比如說job通常是在凌晨服務(wù)器負(fù)載較低時執(zhí)行,那么就可以通過WINDOW設(shè)置在此期間,允許jobs使用更多的系統(tǒng)資源,而到了工作時間后,如果job仍未執(zhí)行完成,為其分配另一個有限的資源,以盡可能降低job執(zhí)行占用的資源對其它業(yè)務(wù)的影響。

    1、創(chuàng)建Window

      創(chuàng)建Window有一個專門的過程:DBMS_SCHEDULER.CREATE_WINDOW進(jìn)行處理,該過程有兩種調(diào)用方式,如下:

      -- 基于SCHEDULE

      DBMS_SCHEDULER.CREATE_WINDOW (

         window_name             IN VARCHAR2,

         resource_plan           IN VARCHAR2,

         schedule_name           IN VARCHAR2,

         duration                IN INTERVAL DAY TO SECOND,

         window_priority         IN VARCHAR2                 DEFAULT ¨LOW¨,

         comments                IN VARCHAR2                 DEFAULT NULL);

      -- 基于定義的調(diào)度

      DBMS_SCHEDULER.CREATE_WINDOW (

         window_name             IN VARCHAR2,

         resource_plan           IN VARCHAR2,

         start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,

         repeat_interval         IN VARCHAR2,

         end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,

         duration                IN INTERVAL DAY TO SECOND,

         window_priority         IN VARCHAR2                 DEFAULT ¨LOW¨,

         comments                IN VARCHAR2                 DEFAULT NULL);

      刨開那些看著眼熟的,已經(jīng)認(rèn)識的,看參數(shù)名就知道其所代表含義的之外,下列幾個參數(shù)可能需要關(guān)注:

    • Resource_plan :這一參數(shù)用來指定要使用的資源使用計劃,當(dāng)打開WINDOW時,就會自動按照指定的資源使用計劃中的設(shè)置分配資源,當(dāng)WINDOW關(guān)閉時(沒錯,window是會關(guān)閉的,要不怎么說有效控制資源的使用情況泥),系統(tǒng)會自動切換回適當(dāng)資源計劃。這個參數(shù)在執(zhí)行過程時甚至可以指定為NULL或空值¨¨,當(dāng)設(shè)置為NULL時,就表示使用默認(rèn)的資源計劃,當(dāng)設(shè)置為空值¨¨時,表示禁用資源使用計劃。
    • Duration :指定WINDOW的有效期,比如說指定為interval ¨5¨ hour就表示5個小時,該參數(shù)在執(zhí)行過程時必須指定參數(shù)值,否則創(chuàng)建會報錯。
    • Window_priority :該參數(shù)用來指定WINDOW的優(yōu)先級。因為在相同時間只有一個WINDOW有效,因此如果在創(chuàng)建WINDOW時發(fā)現(xiàn)重疊的情況,ORACLE就需要根據(jù)這一參數(shù)指定的規(guī)則,來確定優(yōu)先級,說白了就是先把資源給誰用,這一參數(shù)有兩個可選值:HIGH或LOW,默認(rèn)值為LOW。

      正如前面CREATE_WINDOW過程語法結(jié)構(gòu)顯示的那樣,調(diào)用該過程有兩種方式,差異就在于是指定現(xiàn)有定義好的調(diào)度SCHEDULE,還是在執(zhí)行過程時指定調(diào)度,目標(biāo)和實現(xiàn)的功能都是相同的,這里僅做示例,咱就挑個最復(fù)雜的方式吧,執(zhí)行過程時指定調(diào)度,執(zhí)行腳本如下:

      SQL> begin

        2    dbms_scheduler.create_window(window_name     => ¨my_first_wd1¨,

        3                                 resource_plan   => null,

        4                                 start_date      => sysdate,

        5                                 repeat_interval => ¨FREQ=DAILY; INTERVAL=5¨,

        6                                 duration        => interval ¨1¨ hour);

        7  end;

        8  /

      PL/SQL procedure successfully completed.

      查詢當(dāng)前擁有的WINDOW,可以通過*_SCHEDULER_WINDOWS視圖(注意只有DBA和ALL,沒有USER,因為所有定義的WINDOW都屬于SYS用戶)。除了*_SCHEDULER_WINDOWS視圖顯示當(dāng)前所有WINDOW外,還有:

    • *_SCHEDULER_WINDOW_DETAILS 視圖:顯示W(wǎng)INDOW的詳細(xì)信息;
    • *_SCHEDULER_WINDOW_LOG 視圖:顯示W(wǎng)INDOW的日志,比如打開和關(guān)閉;

    2、管理Window

      通過前面那些SCHEDULER對象的學(xué)習(xí),相當(dāng)大家已經(jīng)了解了ORACLE SCHEDULER中對象的特點,對于多數(shù)對象的管理,不外乎下列幾種:

    • 修改對象屬性,使用SET_ATTRIBUTE過程;

      SQL> exec dbms_scheduler.set_attribute(¨sys.my_first_wd1¨,¨start_date¨,sysdate+1);

      PL/SQL procedure successfully completed.
    • ENABLE 對象,使用ENABLE過程;

      SQL> exec dbms_scheduler.enable(¨sys.my_first_wd1¨);

      PL/SQL procedure successfully completed.
    • DISABLE 對象,使用DISABLE過程;

      SQL> exec dbms_scheduler.disable(¨sys.my_first_wd1¨);

      PL/SQL procedure successfully completed.
    • 刪除對象,使用DROP_WINDOW過程;

      SQL> exec dbms_scheduler.drop_window(¨sys.my_first_wd1¨);

      PL/SQL procedure successfully completed.

      除此之外呢,對于WINDOW對象來說,由于其特殊作用,又有:

    • 手動打開WINDOW,使用OPEN_WINDOW過程;

      注意WINDOW是依賴于其調(diào)度的,因此在手動打開WINDOW時,必須為其指定duration屬性:

      SQL> exec dbms_scheduler.open_window(¨sys.my_first_wd1¨,interval ¨1¨ hour);;

      PL/SQL procedure successfully completed.
    • 手動關(guān)閉WINDOW,使用CLOSE_WINDOW過程;

      SQL> exec dbms_scheduler.close_window(¨sys.my_first_wd1¨);

      PL/SQL procedure successfully completed.

      關(guān)閉和打開WINDOW,都會記錄日志,大家可以通過*_SCHEDULER_WINDOW_LOG視圖中獲取這部分信息。

    3、關(guān)于WINDOW GROUP

      除了WINDOW外,還有一個與WINDOW有關(guān)系的叫WINDOW GROUP,一個WINDOW GROUP可能包 含多個WINDOW。使用WINDOW GROUP的本意是這樣的,假如說某個job執(zhí)行的時間比較長,甚至全天24小時都在執(zhí)行,對于這類job,單個WINDOW很難有效調(diào)整其資源占用,這時間呢,就可以通過設(shè)置一個WINDOW GROUP,該WINDOW GROUP中包含了多個WINDOW,每個WINDOW分別負(fù)責(zé)不同時間點時的資源使用計劃。

      然后在創(chuàng)建JOB時,指定schedule_name參數(shù)為WINDOW GROUP的名稱(想不到SCHEDULE_NAME還能指定為WINDOW GROUP哪,其實何止WINDOW GROUP,還可以直接指定成WINDOW哪),這樣,就可以通過很簡單的方式,將job與window聯(lián)系在一起了。

      WINDOW GROUP 的創(chuàng)建和管理與前面介紹的方式極其相似:

    • 創(chuàng)建,使用CREATE_WINDOW_GROUP過程;
    • 刪除,使用DROP_WINDOW_GROUP過程;
    • 添加WINDOW成員,使用ADD_WINDOW_GROUP_MEMBER過程;
    • 刪除WINDOW成員,使用REMOVE_WINDOW_GROUP_MEMBER過程;
    • 啟用,使用ENABLE過程;
    • 禁用,使用DISABLE過程;

      這些過程的調(diào)用方式也都非常簡單,這里就不著重演示了,感興趣的朋友不妨自行嘗試。

    全面學(xué)習(xí)ORACLE Scheduler特性系列:

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 日韩av综合中文字幕| 久久精品国产99久久久古代 | 人妻少妇久久久久久97人妻| 同桌上课脱裙子让我帮他自慰| 国产成人精品视频不卡| 狠狠噜天天噜日日噜视频麻豆| 久久精品国产www456c0m| 国产精品VA尤物在线观看| 在线 | 18精品免费1区2| 日韩高清亚洲日韩精品一区二区| 人人妻人人澡人人爽欧美二区| 国产精品中文字幕综合| 成码无人AV片在线电影网站 | 一本色道久久东京热| 欧美嫩交一区二区三区| 又爽又黄又无遮挡的激情视频免费| 四虎成人精品永久网站| 久久综合九色欧美综合狠狠| 6080午夜三级中文在线观看| 日韩精品人妻av一区二区三区| 国产乱码一区二区三区免费| 国产精品中文字幕观看| 九九久久精品国产免费看小说| XXXXXHD亚洲日本HD| 99久久99精品久久久久久| 日日橹狠狠爱欧美视频| 亚洲国产中文字幕精品| 18禁美女裸体爆乳无遮挡| 一卡2卡三卡4卡免费网站| 久久精品人妻中文系列葵司| 99RE6在线观看国产精品| 国产精品免费视频不卡| 99久久久精品免费观看国产 | 亚洲制服丝袜中文字幕在线| 国产一区二区三区av在线无码观看 | 成人国产精品中文字幕| 亚洲精品成人片在线播放| 日韩女同在线二区三区| 国产不卡av一区二区| 色窝窝无码一区二区三区成人网站| 成人免费视频在线观看播放|