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

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

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

    海鷗航際

    JAVA站
    posts - 11, comments - 53, trackbacks - 1, articles - 102

    讓你的連接查詢加速

    Posted on 2005-02-03 21:00 海天一鷗 閱讀(171) 評論(0)  編輯  收藏 所屬分類: Java數據庫技術

    Oracle9i引入了一種新的方法來加速對大型數據倉表格的連接(join)查詢。這種新的方法,即位圖連接索引(bitmap join index),要求創建一個索引,有這個索引在它被創建的時候進行合并操作,然后為連接中用到的關鍵字創建一個位圖索引。

    <a target="_blank"><IMG SRC="http://m2.cn.doubleclick.net/1012548/mpu_mymai.swf " WIDTH=468 HEIGHT=60 BORDER=0 ></a>

    位圖連接索引背后的技術其實是把低基數數據列預先連接在一起,這樣就讓整體的連接(操作)進行得更快。在本文的例子里,我們將使用一個零件和供應商之間的多對多關系。每個零件都由多個供應商供應,而每個供應商能夠提供多種零件。這個數據庫里有200種不同類型的零件,供應商可以在(美國)所有50個州供應零件。

    要創建一個位圖連接索引,我們要使用下面的SQL。要注意CREATE INDEX句法里的FROM和WHERE子句。

    create bitmap index
       part_suppliers_state
    on
       inventory( parts.part_type, supplier.state)
    from
       inventory i,
       parts     p,
       supplier  s
    where
       i.part_id = p.part_id
    and
       i.supplier_id = p.part_id;

    盡管b-tree索引被用在標準的交叉記錄(junction record)里,但是我們能夠提高Oracle9i查詢的性能,在這些查詢里判斷述詞(predicate)會用到低基數數據列。例如,看看下面的查詢,我們可以通過這個查詢來獲得北卡羅來納的所有火花塞供應商:

    select
       supplier_name
    from
       parts
    natural join
       inventory
    natural join
       suppliers
    where
       part_type = 'piston'
    and
       state = 'nc'
    ;

    在Oracle9i之前的版本里,這個查詢會需要一個對所有三個表格進行嵌套循環連接(nested loop join)或者散列連接(hash join)。而在Oracle9i里,我們可以根據低基數數據列將這三個表格預先連接。

    Oracle宣稱,當所有的查詢數據都駐留在索引之內的時候,使用這種索引方法能夠把表格連接的速度提高7倍以上。然而在很多情況下,傳統的散列連接或者嵌套循環連接可能會比位圖連接做得更好。

    位圖連接不是一副萬能藥。下面就是索引的一些局限性:

    1. 被索引的數據列必須是低基數的——通常要少于300個完全不同的值。
    2. 在WHERE子句里,查詢絕對不能索引哪些沒有包含在索引里的數據列。
    3. 更新位圖連接索引所需要的代價是相當高的。從實用的角度講,位圖連接索引被拋棄,而在每天晚上進行每日批量加載任務的時候才被重建。只有對于那些在處理的時候保持只讀的Oracle數據倉,位圖連接索引才會起作用。

    總而言之,位圖連接索引會極大地提高特定數據倉查詢的速度,但是其代價是在為圖索引創建的時候,需要預先連接表格。

    主站蜘蛛池模板: 亚洲熟妇丰满xxxxx| 色欲aⅴ亚洲情无码AV蜜桃| 久热综合在线亚洲精品| 老汉色老汉首页a亚洲| 亚洲男人天堂2018av| 一级白嫩美女毛片免费| 亚洲黄色免费电影| 日本免费人成视频播放| 亚洲情XO亚洲色XO无码| 亚洲二区在线视频| 男女交性无遮挡免费视频| 免费A级毛片无码A∨中文字幕下载| 久久久久国色AV免费看图片| 亚洲人成网亚洲欧洲无码久久| 好猛好深好爽好硬免费视频| 成人片黄网站A毛片免费| 亚洲国产精品ⅴa在线观看| 日本免费一区二区在线观看| 亚洲精品无码专区久久久| 羞羞漫画小舞被黄漫免费| 国产成人精品免费视频大| 久久久国产亚洲精品| 亚洲AV伊人久久青青草原| 亚洲精品美女久久久久9999| 岛国岛国免费V片在线观看| 在线观看人成视频免费| 久久精品a亚洲国产v高清不卡| 香蕉97超级碰碰碰免费公| 亚洲黄色在线电影| 久久美女网站免费| 国产亚洲精品不卡在线| 国产亚洲漂亮白嫩美女在线 | 国产av天堂亚洲国产av天堂| 欧洲美女大片免费播放器视频| 怡红院亚洲怡红院首页| 黄 色一级 成 人网站免费| 亚洲精品国产电影午夜| 免费观看四虎精品国产永久| 久久水蜜桃亚洲AV无码精品| 国产A在亚洲线播放| 全免费A级毛片免费看网站|