国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

關(guān)于三種JOIN的理解

2024-07-21 02:33:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  Nested loop join:
  
  步驟:確定一個(gè)驅(qū)動(dòng)表(outer table),另一個(gè)表為inner table,驅(qū)動(dòng)表中的每一行與inner表中的相應(yīng)記錄JOIN。類似一個(gè)嵌套的循環(huán)。適用于驅(qū)動(dòng)表的記錄集比較小(<10000)而且inner表需要有有效的訪問(wèn)方法(Index)。 需要注重的是:JOIN的順序很重要,驅(qū)動(dòng)表的記錄集一定要小,返回結(jié)果集的響應(yīng)時(shí)間是最快的。
  
  cost = outer access cost + (inner access cost * outer cardinality)
  
    2   NESTED LOOPS                  3   141    7 (15)
    3   TABLE ACCESS FULL      EMPLOYEES     3   60    4 (25)
    4   TABLE ACCESS BY INDEX ROWID JOBS       19   513    2 (50)
    5    INDEX UNIQUE SCAN     JOB_ID_PK     1           
  
  EMPLOYEES為outer table, JOBS為inner table.
  
  Hash join
  
  步驟:將兩個(gè)表中較小的一個(gè)在內(nèi)存中構(gòu)造一個(gè)HASH表(對(duì)JOIN KEY),掃描另一個(gè)表,同樣對(duì)JOIN KEY進(jìn)行HASH后探測(cè)是否可以JOIN。適用于記錄集比較大的情況。需要注重的是:假如HASH表太大,無(wú)法一次構(gòu)造在內(nèi)存中,則分成若干個(gè)partition,寫(xiě)入磁盤(pán)的temporary segment,則會(huì)多一個(gè)寫(xiě)的代價(jià),會(huì)降低效率。
  
  cost = (outer access cost * # of hash partitions) + inner access cost
  --------------------------------------------------------------------------
   Id  Operation       Name     Rows  Bytes Cost (%CPU)
  --------------------------------------------------------------------------
    0 SELECT STATEMENT            665 13300    8 (25)
    1  HASH JOIN               665 13300    8 (25)
    2   TABLE ACCESS FULL  ORDERS      105   840    4 (25)
    3   TABLE ACCESS FULL  ORDER_ITEMS   665  7980    4 (25)
  --------------------------------------------------------------------------
  
  ORDERS為HASH TABLE,ORDER_ITEMS掃描
  
  Sort merge join
  
  步驟:將兩個(gè)表排序,然后將兩個(gè)表合并。通常情況下,只有在以下情況發(fā)生時(shí),才會(huì)使用此種JOIN方式:
  
  1.RBO模式
  
  2.不等價(jià)關(guān)聯(lián)(>,<,>=,<=,<>)
  
  3.HASH_JOIN_ENABLED=false
  
  4.數(shù)據(jù)源已排序
  
  cost = (outer access cost * # of hash partitions) + inner access cost

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凌源市| 屯昌县| 页游| 宁明县| 黄冈市| 闵行区| 新干县| 吉首市| 普洱| 来安县| 遵义市| 长沙县| 长汀县| 宁波市| 香格里拉县| 当雄县| 芒康县| 岱山县| 新化县| 贞丰县| 原阳县| 关岭| 武宁县| 丹阳市| 和静县| 高陵县| 揭阳市| 盖州市| 郴州市| 苍南县| 河源市| 察隅县| 承德县| 新源县| 焉耆| 论坛| 图们市| 响水县| 胶州市| 汤原县| 读书|