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

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

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

    posts - 262,  comments - 221,  trackbacks - 0
    【1】方法一:通過dbms_random.random
    select * from (select * from largetable order by dbms_random.random) where rownum <= 20000;

    【2】方法二:通過dbms_random.value
    select * from (select * from largetable order by dbms_random.value) where rownum <= 20000;

    【3】方法三:通過采樣表掃描
    select * from (select * from largetable sample(10)) where rownum <= 20000;

    下面我們通過實踐來比較這3種方法的效率,首先我們創(chuàng)建一個包含有10W條記錄的表用于實驗:
    create table LARGETABLE
    (
      ID       
    NUMBER not null primary key,
      BIRTHDAY DATE 
    not null
    )

    接下來我們插入10W條數(shù)據(jù)
    create or replace procedure random_insert as
      i         
    number;
      startDate date :
    = sysdate;

    begin

      
    for i in 1 .. 100000 loop
        
    insert into largetable values (i, startDate + 1);
      
    end loop commit;

    end;

    在SQL*PLUS下設(shè)置顯示SQL語句執(zhí)行時間:set timing on,讓后分別運行上述三條語句:

    第一個的執(zhí)行時間為 00: 00: 16: 04
    第二個的執(zhí)行時間為 00: 00: 54: 04
    第三個的執(zhí)行時間為 00: 00: 08: 07

    從這里我們可以看出在進行數(shù)據(jù)隨機抽取時,采用sample的方法效率是最高的。為了保證每次隨機查詢的數(shù)據(jù)盡量不重復,我們可以把sample中的百分比提高一些(例如從10%提高到20%)。

    關(guān)于Oracle Sample的介紹和用法,請參考eygle他老人家的一篇文章介紹:如何從結(jié)果集中獲得隨機結(jié)果


    -------------------------------------------------------------
    生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
    posted on 2008-06-09 17:41 Paul Lin 閱讀(1983) 評論(3)  編輯  收藏 所屬分類: Oracle 開發(fā)


    FeedBack:
    # re: 【原】Oracle開發(fā)專題之:隨機查詢
    2009-02-23 11:36 | wxf0701@gmail.com
    俺的測試結(jié)果跟你的很不一樣哦,你多次運行下看看  回復  更多評論
      
    # re: 【原】Oracle開發(fā)專題之:隨機查詢[未登錄]
    2009-03-19 15:29 | peter
    用sample代表取樣阿,我查詢時如果戴上查詢條件,如果用sample得到的查詢結(jié)果數(shù)量可能不對啊,多次查詢的數(shù)目不同?  回復  更多評論
      
    # re: 【原】Oracle開發(fā)專題之:隨機查詢
    2009-05-17 17:13 | 初學者
    看了大俠的oracle的博文,受益頗深。現(xiàn)有一問題想求,望復:
    在一個SQL語句中,進行表連接的最合適的表的個數(shù)是多少?例如,在一個sql語句中,涉及到了4張表連接。如果,一個sql語句涉及了10張表進行連接,是不是說明數(shù)據(jù)庫的表的設(shè)計有問題?那,一個什么樣的表連接數(shù)值才是合適的數(shù)據(jù)庫表的設(shè)計呢?

    謝謝。
    祝順利,健康。  回復  更多評論
      
    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿(21)

    隨筆分類

    隨筆檔案

    BlogJava熱點博客

    好友博客

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一级片在线播放| 久久精品国产亚洲沈樵| 77777午夜亚洲| 最近免费中文字幕mv电影| 亚洲第一精品福利| 国产99视频精品免费专区| 亚洲AV日韩精品久久久久| 久久免费动漫品精老司机| 91久久亚洲国产成人精品性色 | 国产亚洲人成网站在线观看| 人碰人碰人成人免费视频| 久久精品亚洲乱码伦伦中文| 精品一区二区三区免费视频| 久久精品亚洲中文字幕无码网站| 久久一区二区三区免费播放| 亚洲女人影院想要爱| 免费看的黄色大片| free哆拍拍免费永久视频| 国产亚洲一区二区三区在线| 1000部拍拍拍18勿入免费视频下载 | 永久免费av无码网站大全| 免费国产草莓视频在线观看黄| 红杏亚洲影院一区二区三区 | 大地资源免费更新在线播放| 亚洲国产精华液2020| 亚洲一区日韩高清中文字幕亚洲| 青柠影视在线观看免费高清| 亚洲综合久久久久久中文字幕| 毛片免费观看网站| www在线观看播放免费视频日本| 久久精品亚洲一区二区| 成人毛片免费在线观看| 亚洲精品偷拍视频免费观看| 91久久亚洲国产成人精品性色| 全免费a级毛片免费看不卡| 国产免费一区二区三区免费视频| 亚洲春黄在线观看| gogo全球高清大胆亚洲| 亚洲网站在线免费观看| 日韩久久无码免费毛片软件| 久久精品国产亚洲AV无码娇色|