<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    mashiguang

    小馬快跑

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      20 隨筆 :: 0 文章 :: 60 評(píng)論 :: 0 Trackbacks
     

    最近公司客戶反映有些頁(yè)面運(yùn)行速度太慢,通過(guò)對(duì)系統(tǒng)代碼的分析,發(fā)現(xiàn)排行榜功能是罪魁禍?zhǔn)祝驗(yàn)閿?shù)據(jù)量太大,每次刷新頁(yè)面都計(jì)算一次排行榜,的確耗時(shí)費(fèi)力。

    其實(shí)可以讓數(shù)據(jù)庫(kù)自己計(jì)算排行榜,并把計(jì)算結(jié)果保存到一個(gè)單獨(dú)的表里去,這個(gè)表只用來(lái)保存排行榜的數(shù)據(jù),數(shù)據(jù)量很小,然后所有的排行榜查詢都去select這個(gè)表。

    計(jì)算排行榜的功能我們可以寫成一個(gè)存儲(chǔ)過(guò)程,但是排行榜的數(shù)據(jù)不是一成不變的,還需要不時(shí)的調(diào)用這個(gè)存儲(chǔ)過(guò)程才行,oracle為我們提供了dbms_jobs

    oracel dbms_jobs包可以提交作業(yè)到作業(yè)隊(duì)列中,這個(gè)包中還提供其它一些函數(shù)管理以前提交的作業(yè),如對(duì)作業(yè)進(jìn)行修改、禁止或刪除等操作。

    常用函數(shù):

    submit(),提交作業(yè)到作業(yè)隊(duì)列。

    isumbit()

    remove(),從作業(yè)隊(duì)列中刪除作業(yè)。

    change(),改變已有作業(yè)的參數(shù)。

    what(),改變作業(yè)要執(zhí)行的代碼。

    next_date(),改變作業(yè)下一次執(zhí)行時(shí)間。

    interval(),改變作業(yè)執(zhí)行的時(shí)間間隔。

    broken(),暫停執(zhí)行作業(yè)。

    run(),強(qiáng)制執(zhí)行作業(yè)。

    最常用的submit()函數(shù):

    dbms_jobs.submit(

           job out binary_integer,

           what in varchar2,

           next_date in date default sysdate,

           interval in varchar default null,

           no_parse in boolean default false,

           instance in binary_integer default any_instance,

           force in boolean default false

    );

    submit函數(shù)參數(shù):

    job,作業(yè)的作業(yè)號(hào),是個(gè)輸出參數(shù),所以調(diào)用submit函數(shù)時(shí),這個(gè)參數(shù)要指定一個(gè)已存在的變量。

    what,作業(yè)要執(zhí)行的代碼,一般是存儲(chǔ)過(guò)程。

    next_date,下一次作業(yè)運(yùn)行的日期。

    interval作業(yè)執(zhí)行的間隔時(shí)間,這個(gè)參數(shù)默認(rèn)值是null也就是what指定的代碼只在next_date這一時(shí)間執(zhí)行一次。

    no_parse,默認(rèn)值是false,當(dāng)參數(shù)值是false,提交作業(yè)時(shí)就對(duì)what指定的代碼進(jìn)行語(yǔ)法分析;當(dāng)參數(shù)值是true,第一次運(yùn)行what指定代碼時(shí)才進(jìn)行語(yǔ)法分析。

    instance,指明運(yùn)行作業(yè)的數(shù)據(jù)庫(kù)實(shí)例。

    force,如果是true,instance可以是任何正數(shù);如果是falseinstance指定的實(shí)例必須正在運(yùn)行。

    示例:

    var jobno number;

    begin

    dbms_job.submit(:jobno,'p_xxx_taxis;',trunc(sysdate)+(18/24),'trunc(sysdate+1,''hh'')');--每天18點(diǎn)執(zhí)行

    commit;

    end;

    上面這段話要在 命令窗口 下運(yùn)行,如在pl/sql developer里面的-->新鍵-->命令窗口

    這樣就會(huì)在每天的18點(diǎn)執(zhí)行存儲(chǔ)過(guò)程p_xxx_taxis。在我這里p_xxx_taxis執(zhí)行的是計(jì)算排行榜的任務(wù)。

    posted on 2008-07-14 16:56 mashiguang 閱讀(4134) 評(píng)論(6)  編輯  收藏

    評(píng)論

    # re: oracel dbms_jobs的使用 2008-07-14 18:19 bt
    java的效率本來(lái)就不好,數(shù)據(jù)量大一點(diǎn)就不行了。呵呵。  回復(fù)  更多評(píng)論
      

    # re: oracel dbms_jobs的使用 2008-07-15 13:30 lan
    排行榜之類的東西,本身就不應(yīng)當(dāng)是實(shí)時(shí)的,本身就不是頁(yè)面去做的。
    應(yīng)當(dāng)每隔一段時(shí)間在后臺(tái)作一次,葉面僅僅是取結(jié)果。
    如果做成實(shí)時(shí)的,系統(tǒng)肯定會(huì)受不了,當(dāng)然專業(yè)網(wǎng)站除外。  回復(fù)  更多評(píng)論
      

    # re: oracel dbms_jobs的使用 2008-07-15 14:50 mashiguang
    謝謝樓上的回復(fù).
    寫這篇文章目的主要是記錄oracel dbms_jobs的使用方法,不是記錄排行榜這類東西用什么方案實(shí)現(xiàn).  回復(fù)  更多評(píng)論
      

    # re: oracel dbms_jobs的使用[未登錄](méi) 2008-07-26 13:59 paul
    不知lz是怎么更新的,是先將原table數(shù)據(jù)刪除,在將排好的數(shù)據(jù)insert,如果這樣的話,到了定時(shí)更新時(shí)間后臺(tái)正在更新。會(huì)不會(huì)造成前臺(tái)無(wú)數(shù)據(jù)顯示啊  回復(fù)  更多評(píng)論
      

    # re: oracel dbms_jobs的使用 2008-07-28 10:14 mashiguang
    樓上說(shuō)的是,的確會(huì)出現(xiàn)無(wú)數(shù)據(jù)顯示的情況,我選擇每天18點(diǎn)運(yùn)行,是因?yàn)檫@個(gè)頁(yè)面主要是美國(guó)的客戶訪問(wèn),估計(jì)他們不會(huì)大清早的訪問(wèn)這個(gè)頁(yè)...
    但這種情況也不是肯定不會(huì)發(fā)生,有更好的辦法嗎?
      回復(fù)  更多評(píng)論
      

    # re: oracel dbms_jobs的使用 2008-07-28 10:21 mashiguang
    先insert,再delete,查的時(shí)候倒序只要最后10條.  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合网美国十次| 美女视频免费看一区二区| 国产精品永久免费| 国产91精品一区二区麻豆亚洲 | 国产一区二区免费| 国产亚洲色婷婷久久99精品| 国产区在线免费观看| 亚洲精品无码永久中文字幕| 久久美女网站免费| 亚洲伊人久久大香线蕉影院| AA免费观看的1000部电影| 亚洲人成未满十八禁网站| 日本一道一区二区免费看| 老司机免费午夜精品视频| 国产亚洲情侣一区二区无码AV| 国产无遮挡又黄又爽免费网站| 亚洲av永久无码精品漫画| 免费观看无遮挡www的视频| 亚洲精品乱码久久久久蜜桃| 免费一区二区视频| 免费无码av片在线观看| 久久亚洲AV成人无码国产| 欧洲黑大粗无码免费| 美国免费高清一级毛片| 亚洲乳大丰满中文字幕| 四虎在线最新永久免费| 日韩在线视精品在亚洲| 亚洲精品无码成人AAA片| 1000部拍拍拍18免费网站| 国产亚洲综合视频| 亚洲AV无码国产丝袜在线观看| 国产又大又粗又长免费视频| 午夜亚洲WWW湿好爽| 亚洲AV无码成人精品区天堂| 成人超污免费网站在线看| 日韩少妇内射免费播放| 亚洲春色另类小说| 亚洲人成网站观看在线播放| 99ee6热久久免费精品6| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 在线观看无码AV网站永久免费|