Oracle三種表串連技術

來源:互聯網
上載者:User

   Oracle有三種表串連技術,分別是嵌套串連、合并串連和雜湊串連。

  1. 嵌套迴圈串連 (NESTED LOOP Join)

  嵌套串連把要處理的資料集分為外迴圈(驅動資料來源)和內迴圈(被驅動資料來源),外迴圈只執行一次(先執行),內迴圈執行的次數等於外迴圈執行的資料集個數。

  這種串連的好處是記憶體使用量非常少。

  如果驅動資料來源有限,且被驅動表在串連列上有相應的索引,則這種串連方式才是高效的。

  在OLTP系統上常見到這種串連方式。

  2. 排序合并串連 (Sort Merge Join)顧名思義,排序合并就是先分別對待串連的資料集進行排序,然後再合并,其執行過程大致為:對錶A的資料集進行排序,排序結果儲存的工作區A中;對錶B的資料集進行排序,排序結果儲存在工作區B中;最後合并工作區A和B中的資料。

  對這種串連方法,排序的開銷是非常大的,和排序工作區相關的記憶體參數有:sort_area_size和sort_area_retained_size,都在在PGA中。

  3. 雜湊串連 (Hash Join)雜湊串連處理的兩個資料集分別稱為構造輸入(build input)和探測輸入(probe input),構造輸入的每行記錄用於構造雜湊表,探測輸入的每行記錄對雜湊表進行探測,以找出符合串連條件的記錄。

  將較小的表作為構造輸入,較大的表作為探測輸入,這樣雜湊串連的效率才比較高,在執行計畫中,較小的輸入表在前面,較大的探測表在後面。

  雜湊串連只有在相等串連的條件下才能進行。

  和雜湊表工作區相關的記憶體參數有:hash_area_size,也在PGA中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.