Neil的備忘錄

          just do it
          posts - 66, comments - 8, trackbacks - 0, articles - 0
          Driving Table(驅(qū)動(dòng)表):
              該表又稱為外層表(OUTER TABLE)。這個(gè)概念用于嵌套與HASH連接中。如果該row source返回較多的行數(shù)據(jù),則對(duì)所有的后續(xù)操作有負(fù)面影響。注意此處雖然翻譯為驅(qū)動(dòng)表,但實(shí)際上翻譯為驅(qū)動(dòng)行源(driving row source)更為確切。一般說(shuō)來(lái),是應(yīng)用查詢的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表,所以如果一個(gè)大表在WHERE條件有有限制條件(如等值限 制),則該大表作為驅(qū)動(dòng)表也是合適的,所以并不是只有較小的表可以作為驅(qū)動(dòng)表,正確說(shuō)法應(yīng)該為應(yīng)用查詢的限制條件后,返回較少行源的表作為驅(qū)動(dòng)表。在執(zhí)行 計(jì)劃中,應(yīng)該為靠上的那個(gè)row source

          Probed Table(被探查表):
               該表又稱為內(nèi)層表(INNER TABLE)。在我們從驅(qū)動(dòng)表中得到具體一行的數(shù)據(jù)后,在該表中尋找符合連接條件的行。所以該表應(yīng)當(dāng)為大表(實(shí)際上應(yīng)該為返回較大row source的表)且相應(yīng)的列上應(yīng)該有索引。在我們后面的描述中,一般將該表稱為連接操作的row source


          組合索引(concatenated index):
                由多個(gè)列構(gòu)成的索引,如create index idx_emp on emp(col1, col2, col3, ……),則我們稱idx_emp索引為組合索引。在組合索引中有一個(gè)重要的概念:引導(dǎo)列(leading column),在上面的例子中,col1列為引導(dǎo)列。當(dāng)我們進(jìn)行查詢時(shí)可以使用”where col1 = ? ”,也可以使用”where col1 = ? and col2 = ?”,這樣的限制條件都會(huì)使用索引,但是”where col2 = ? ”查詢就不會(huì)使用該索引。所以限制條件中包含先導(dǎo)列時(shí),該限制條件才會(huì)使用該組合索引


          Join表的幾種方式:

          1.(Sort Merge Join (SMJ) )
          a.首先:生成驅(qū)動(dòng)表的結(jié)果集。然后排序
            b.生成被探查表的結(jié)果集,然后排序。
            c.然后兩個(gè)表進(jìn)行連接。
          2.(Nested Loops (NL) )
            兩層循環(huán),里邊的表循環(huán)一次,然后去外邊的表去查,得到結(jié)果行,然后放入結(jié)果集。
             所以較小的表要做為內(nèi)層的表,即驅(qū)動(dòng)表

            他還有另一個(gè)優(yōu)點(diǎn):可以返回已經(jīng)連接的結(jié)果集,不必等到所有的結(jié)果集都返回,才返回結(jié)構(gòu)。
            
          3.(Hash Join)

             較小的表用來(lái)構(gòu)建 row sourcehash 和 tablebitmap。
              外邊的表是用來(lái)被hash的,并與第一個(gè)表生成的hashtable 進(jìn)行連接。


          索引掃描的方式:
          索引唯一掃描(index unique scan)
          select empno,ename from emp where empno=10;
             empno是主鍵或者是unique .
          索引范圍掃描(index range scan)
              empno>59
          索引全掃描(index full scan)
             select empno, ename from big_emp order by empno,ename
          是排著序的。
          索引快速掃描(index fast full scan
              select empno,ename from big_emp;  不排序。

          原文地址:http://weiruan85.javaeye.com/blog/288374

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 灯塔市| 科技| 吉安县| 普宁市| 罗城| 名山县| 桂平市| 汤原县| 廊坊市| 合川市| 洪湖市| 三门峡市| 九江县| 衡南县| 漾濞| 和田县| 卫辉市| 昭通市| 宜君县| 乐亭县| 西乌珠穆沁旗| 项城市| 全州县| 沁阳市| 阳曲县| 汉阴县| 德阳市| 万安县| 阳城县| 墨竹工卡县| 麦盖提县| 大竹县| 库伦旗| 澳门| 灵山县| 尤溪县| 泸定县| 嫩江县| 德庆县| 苗栗县| 新沂市|